// SPDX-License-Identifier: MIT
pragma solidity ^0.8.26;
// =============================================================================
// RobinVista Cross Router
//
// Atomic ETH ↔ (token quoted in USDG or a tokenized stock) swaps by
// composing three venues in one transaction:
//
// ETH ──(Uniswap V3: deep ETH/USDG pool)──▶ USDG
// ──(Uniswap V4: USDG/STOCK pool — optional leg)──▶ STOCK
// ──(RobinVista: STOCK/token flat-fee pool)──▶ token
//
// and the exact mirror for sells. The contract is stateless: it never holds
// funds between transactions, approvals are granted per call, and the user
// is protected by a single minOut on the final output. The V4 pool key is
// caller-supplied — the frontend picks the best pool at quote time; a bad
// key can only produce a worse output, which minOut rejects.
//
// RobinVista's flat ETH swap fee (rvFee µETH) is carved out of msg.value
// on buys and must be attached as msg.value on sells.
// =============================================================================
import {ReentrancyGuard} from "@openzeppelin/contracts/utils/ReentrancyGuard.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import {IRobinVistaSwapRouterMinimal} from "./interfaces/IRobinVistaDex.sol";
// ---- minimal Uniswap V4 surface --------------------------------------------
struct V4PoolKey {
address currency0; // address(0) = native ETH
address currency1;
uint24 fee;
int24 tickSpacing;
address hooks;
}
interface IV4PoolManager {
struct SwapParams {
bool zeroForOne;
int256 amountSpecified; // negative = exact input
uint160 sqrtPriceLimitX96;
}
function unlock(bytes calldata data) external returns (bytes memory);
function swap(V4PoolKey memory key, SwapParams memory params, bytes calldata hookData)
external
returns (int256 swapDelta);
function sync(address currency) external;
function settle() external payable returns (uint256);
function take(address currency, address to, uint256 amount) external;
}
// ---- minimal Uniswap V3 SwapRouter02 surface (no deadline in struct) -------
interface IV3SwapRouter02 {
struct ExactInputSingleParams {
address tokenIn;
address tokenOut;
uint24 fee;
address recipient;
uint256 amountIn;
uint256 amountOutMinimum;
uint160 sqrtPriceLimitX96;
}
function exactInputSingle(ExactInputSingleParams calldata params)
external
payable
returns (uint256 amountOut);
}
interface IWETH9 {
function withdraw(uint256) external;
function deposit() external payable;
}
contract RobinVistaCrossRouter is ReentrancyGuard {
using SafeERC20 for IERC20;
uint160 internal constant MIN_SQRT_PRICE_PLUS_1 = 4295128740;
uint160 internal constant MAX_SQRT_PRICE_MINUS_1 =
1461446703485210103287273052203988822378723970341;
IV4PoolManager public immutable V4_POOL_MANAGER;
IV3SwapRouter02 public immutable V3_ROUTER;
IRobinVistaSwapRouterMinimal public immutable RV_ROUTER;
address public immutable WETH9;
address public immutable USDG;
/// @dev fee tier of the canonical deep ETH/USDG V3 pool
uint24 public immutable V3_ETH_USDG_FEE;
error DeadlinePassed();
error InsufficientOutput();
error OnlyPoolManager();
error ZeroAmount();
event CrossSwap(
address indexed sender,
address indexed tokenIn,
address indexed tokenOut,
uint256 amountIn,
uint256 amountOut
);
constructor(
IV4PoolManager v4PoolManager_,
IV3SwapRouter02 v3Router_,
IRobinVistaSwapRouterMinimal rvRouter_,
address weth9_,
address usdg_,
uint24 v3EthUsdgFee_
) {
V4_POOL_MANAGER = v4PoolManager_;
V3_ROUTER = v3Router_;
RV_ROUTER = rvRouter_;
WETH9 = weth9_;
USDG = usdg_;
V3_ETH_USDG_FEE = v3EthUsdgFee_;
}
// -------------------------------------------------------------------------
// Buy: ETH → [USDG → stock] → token
// -------------------------------------------------------------------------
/// @param v4Key USDG/quote V4 pool. Ignored when `quote == USDG`.
/// @param quote the RobinVista pool's quote asset (USDG or a stock token).
/// @param rvFee RobinVista flat-fee tier of the token's pool (µETH).
/// @param tokenOut the launched token to buy.
/// @dev msg.value = ETH to spend + rvFee flat fee (rvFee * 1e12 wei).
/// @dev msg.value = ETH to spend + rvFee flat fee (rvFee * 1e12 wei).
function buyWithEth(
V4PoolKey calldata v4Key,
address quote,
uint24 rvFee,
address tokenOut,
uint256 minTokensOut,
uint256 deadline
) external payable nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
uint256 flatFeeWei = uint256(rvFee) * 1e12;
if (msg.value <= flatFeeWei) revert ZeroAmount();
uint256 ethIn = msg.value - flatFeeWei;
// 1. ETH → USDG on the deep V3 pool (router wraps the native value)
uint256 usdgOut = V3_ROUTER.exactInputSingle{value: ethIn}(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: WETH9,
tokenOut: USDG,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: ethIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
amountOut = _finishBuy(v4Key, quote, rvFee, tokenOut, usdgOut, minTokensOut, deadline, flatFeeWei);
emit CrossSwap(msg.sender, address(0), tokenOut, msg.value, amountOut);
}
/// @dev WETH input variant: msg.value = the flat fee ONLY; `wethIn` is
/// pulled via allowance.
function buyWithWeth(
V4PoolKey calldata v4Key,
address quote,
uint24 rvFee,
address tokenOut,
uint256 wethIn,
uint256 minTokensOut,
uint256 deadline
) external payable nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (wethIn == 0) revert ZeroAmount();
IERC20(WETH9).safeTransferFrom(msg.sender, address(this), wethIn);
IERC20(WETH9).forceApprove(address(V3_ROUTER), wethIn);
uint256 usdgOut = V3_ROUTER.exactInputSingle(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: WETH9,
tokenOut: USDG,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: wethIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
amountOut = _finishBuy(v4Key, quote, rvFee, tokenOut, usdgOut, minTokensOut, deadline, msg.value);
emit CrossSwap(msg.sender, WETH9, tokenOut, wethIn, amountOut);
}
function _finishBuy(
V4PoolKey calldata v4Key,
address quote,
uint24 rvFee,
address tokenOut,
uint256 usdgOut,
uint256 minTokensOut,
uint256 deadline,
uint256 flatFeeValue
) internal returns (uint256 amountOut) {
// 2. USDG → quote on V4 (skipped when the pool is quoted in USDG itself)
uint256 quoteAmount =
quote == USDG ? usdgOut : _v4SwapExactIn(v4Key, USDG, usdgOut);
// 3. quote → token on RobinVista (flat ETH fee attached)
IERC20(quote).forceApprove(address(RV_ROUTER), quoteAmount);
amountOut = RV_ROUTER.exactInputSingle{value: flatFeeValue}(
IRobinVistaSwapRouterMinimal.ExactInputSingleParams({
tokenIn: quote,
tokenOut: tokenOut,
fee: rvFee,
recipient: msg.sender,
deadline: deadline,
amountIn: quoteAmount,
amountOutMinimum: minTokensOut,
sqrtPriceLimitX96: 0
})
);
if (amountOut < minTokensOut) revert InsufficientOutput();
}
// -------------------------------------------------------------------------
// Bare quote-asset swaps: ETH ↔ stock/USDG, no RobinVista leg.
// Lets users buy the quote assets themselves (TSLA, AAPL, USDG, …) with
// ETH even when no RobinVista pool exists for them. No flat fee applies —
// no RobinVista pool is touched.
// -------------------------------------------------------------------------
/// @param v4Key USDG/quote V4 pool. Ignored when `quote == USDG`.
/// @dev msg.value = the full ETH amount to spend.
function buyQuoteWithEth(
V4PoolKey calldata v4Key,
address quote,
uint256 minOut,
uint256 deadline
) external payable nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (msg.value == 0) revert ZeroAmount();
uint256 usdgOut = V3_ROUTER.exactInputSingle{value: msg.value}(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: WETH9,
tokenOut: USDG,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: msg.value,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
amountOut = quote == USDG ? usdgOut : _v4SwapExactIn(v4Key, USDG, usdgOut);
if (amountOut < minOut) revert InsufficientOutput();
IERC20(quote).safeTransfer(msg.sender, amountOut);
emit CrossSwap(msg.sender, address(0), quote, msg.value, amountOut);
}
/// @dev WETH input variant; `wethIn` is pulled via allowance.
function buyQuoteWithWeth(
V4PoolKey calldata v4Key,
address quote,
uint256 wethIn,
uint256 minOut,
uint256 deadline
) external nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (wethIn == 0) revert ZeroAmount();
IERC20(WETH9).safeTransferFrom(msg.sender, address(this), wethIn);
IERC20(WETH9).forceApprove(address(V3_ROUTER), wethIn);
uint256 usdgOut = V3_ROUTER.exactInputSingle(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: WETH9,
tokenOut: USDG,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: wethIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
amountOut = quote == USDG ? usdgOut : _v4SwapExactIn(v4Key, USDG, usdgOut);
if (amountOut < minOut) revert InsufficientOutput();
IERC20(quote).safeTransfer(msg.sender, amountOut);
emit CrossSwap(msg.sender, WETH9, quote, wethIn, amountOut);
}
/// @dev USDG → stock on the V4 pool. Caller must have approved USDG.
function swapUsdgForStock(
V4PoolKey calldata v4Key,
address stock,
uint256 usdgIn,
uint256 minOut,
uint256 deadline
) external nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (usdgIn == 0) revert ZeroAmount();
IERC20(USDG).safeTransferFrom(msg.sender, address(this), usdgIn);
amountOut = _v4SwapExactIn(v4Key, USDG, usdgIn);
if (amountOut < minOut) revert InsufficientOutput();
IERC20(stock).safeTransfer(msg.sender, amountOut);
emit CrossSwap(msg.sender, USDG, stock, usdgIn, amountOut);
}
/// @dev stock → USDG on the V4 pool. Caller must have approved the stock.
function swapStockForUsdg(
V4PoolKey calldata v4Key,
address stock,
uint256 amountIn,
uint256 minOut,
uint256 deadline
) external nonReentrant returns (uint256 amountOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (amountIn == 0) revert ZeroAmount();
IERC20(stock).safeTransferFrom(msg.sender, address(this), amountIn);
amountOut = _v4SwapExactIn(v4Key, stock, amountIn);
if (amountOut < minOut) revert InsufficientOutput();
IERC20(USDG).safeTransfer(msg.sender, amountOut);
emit CrossSwap(msg.sender, stock, USDG, amountIn, amountOut);
}
/// @dev Caller must have approved `quote` to this contract. Pays out native ETH.
function sellQuoteForEth(
V4PoolKey calldata v4Key,
address quote,
uint256 amountIn,
uint256 minEthOut,
uint256 deadline
) external nonReentrant returns (uint256 ethOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (amountIn == 0) revert ZeroAmount();
IERC20(quote).safeTransferFrom(msg.sender, address(this), amountIn);
uint256 usdgAmount = quote == USDG ? amountIn : _v4SwapExactIn(v4Key, quote, amountIn);
IERC20(USDG).forceApprove(address(V3_ROUTER), usdgAmount);
uint256 wethOut = V3_ROUTER.exactInputSingle(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: USDG,
tokenOut: WETH9,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: usdgAmount,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
IWETH9(WETH9).withdraw(wethOut);
ethOut = wethOut;
if (ethOut < minEthOut) revert InsufficientOutput();
(bool ok,) = msg.sender.call{value: ethOut}("");
require(ok, "ETH send failed");
emit CrossSwap(msg.sender, quote, address(0), amountIn, ethOut);
}
// -------------------------------------------------------------------------
// Sell: token → [stock → USDG] → ETH
// -------------------------------------------------------------------------
/// @dev msg.value must equal the RobinVista flat fee (rvFee * 1e12 wei).
/// Caller must have approved `tokenIn` to this contract.
function sellForEth(
V4PoolKey calldata v4Key,
address quote,
uint24 rvFee,
address tokenIn,
uint256 amountIn,
uint256 minEthOut,
uint256 deadline
) external payable nonReentrant returns (uint256 ethOut) {
if (block.timestamp > deadline) revert DeadlinePassed();
if (amountIn == 0) revert ZeroAmount();
IERC20(tokenIn).safeTransferFrom(msg.sender, address(this), amountIn);
// 1. token → quote on RobinVista
IERC20(tokenIn).forceApprove(address(RV_ROUTER), amountIn);
uint256 quoteAmount = RV_ROUTER.exactInputSingle{value: msg.value}(
IRobinVistaSwapRouterMinimal.ExactInputSingleParams({
tokenIn: tokenIn,
tokenOut: quote,
fee: rvFee,
recipient: address(this),
deadline: deadline,
amountIn: amountIn,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
// 2. quote → USDG on V4 (skipped when already USDG)
uint256 usdgAmount =
quote == USDG ? quoteAmount : _v4SwapExactIn(v4Key, quote, quoteAmount);
// 3. USDG → WETH on V3, unwrap, pay out
IERC20(USDG).forceApprove(address(V3_ROUTER), usdgAmount);
uint256 wethOut = V3_ROUTER.exactInputSingle(
IV3SwapRouter02.ExactInputSingleParams({
tokenIn: USDG,
tokenOut: WETH9,
fee: V3_ETH_USDG_FEE,
recipient: address(this),
amountIn: usdgAmount,
amountOutMinimum: 0,
sqrtPriceLimitX96: 0
})
);
IWETH9(WETH9).withdraw(wethOut);
ethOut = wethOut;
if (ethOut < minEthOut) revert InsufficientOutput();
(bool ok,) = msg.sender.call{value: ethOut}("");
require(ok, "ETH send failed");
emit CrossSwap(msg.sender, tokenIn, address(0), amountIn, ethOut);
}
// -------------------------------------------------------------------------
// V4 leg (unlock-callback pattern)
// -------------------------------------------------------------------------
struct V4Callback {
V4PoolKey key;
address inputCurrency;
uint256 amountIn;
}
function _v4SwapExactIn(V4PoolKey calldata key, address inputCurrency, uint256 amountIn)
internal
returns (uint256 amountOut)
{
bytes memory result = V4_POOL_MANAGER.unlock(
abi.encode(V4Callback({key: key, inputCurrency: inputCurrency, amountIn: amountIn}))
);
amountOut = abi.decode(result, (uint256));
}
function unlockCallback(bytes calldata rawData) external returns (bytes memory) {
if (msg.sender != address(V4_POOL_MANAGER)) revert OnlyPoolManager();
V4Callback memory cb = abi.decode(rawData, (V4Callback));
bool zeroForOne = cb.inputCurrency == cb.key.currency0;
int256 delta = V4_POOL_MANAGER.swap(
cb.key,
IV4PoolManager.SwapParams({
zeroForOne: zeroForOne,
amountSpecified: -int256(cb.amountIn), // exact input
sqrtPriceLimitX96: zeroForOne ? MIN_SQRT_PRICE_PLUS_1 : MAX_SQRT_PRICE_MINUS_1
}),
""
);
// BalanceDelta packs amount0 in the upper 128 bits, amount1 in the lower.
int128 amount0 = int128(delta >> 128);
int128 amount1 = int128(delta);
(int128 inDelta, int128 outDelta) = zeroForOne ? (amount0, amount1) : (amount1, amount0);
uint256 owed = uint256(uint128(-inDelta));
uint256 amountOut = uint256(uint128(outDelta));
// pay the input side
V4_POOL_MANAGER.sync(cb.inputCurrency);
IERC20(cb.inputCurrency).safeTransfer(address(V4_POOL_MANAGER), owed);
V4_POOL_MANAGER.settle();
// collect the output side
address outputCurrency = zeroForOne ? cb.key.currency1 : cb.key.currency0;
V4_POOL_MANAGER.take(outputCurrency, address(this), amountOut);
return abi.encode(amountOut);
}
/// @dev ETH arrives from WETH.withdraw and (defensively) V3 router refunds.
receive() external payable {}
}[
{
"type": "constructor",
"inputs": [
{
"name": "v4PoolManager_",
"type": "address",
"internalType": "contract IV4PoolManager"
},
{
"name": "v3Router_",
"type": "address",
"internalType": "contract IV3SwapRouter02"
},
{
"name": "rvRouter_",
"type": "address",
"internalType": "contract IRobinVistaSwapRouterMinimal"
},
{
"name": "weth9_",
"type": "address",
"internalType": "address"
},
{
"name": "usdg_",
"type": "address",
"internalType": "address"
},
{
"name": "v3EthUsdgFee_",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "nonpayable"
},
{
"name": "DeadlinePassed",
"type": "error",
"inputs": []
},
{
"name": "InsufficientOutput",
"type": "error",
"inputs": []
},
{
"name": "OnlyPoolManager",
"type": "error",
"inputs": []
},
{
"name": "ReentrancyGuardReentrantCall",
"type": "error",
"inputs": []
},
{
"name": "SafeERC20FailedOperation",
"type": "error",
"inputs": [
{
"name": "token",
"type": "address",
"internalType": "address"
}
]
},
{
"name": "ZeroAmount",
"type": "error",
"inputs": []
},
{
"name": "CrossSwap",
"type": "event",
"inputs": [
{
"name": "sender",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenIn",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "tokenOut",
"type": "address",
"indexed": true,
"internalType": "address"
},
{
"name": "amountIn",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
},
{
"name": "amountOut",
"type": "uint256",
"indexed": false,
"internalType": "uint256"
}
],
"anonymous": false
},
{
"name": "RV_ROUTER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IRobinVistaSwapRouterMinimal"
}
],
"stateMutability": "view"
},
{
"name": "USDG",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "V3_ETH_USDG_FEE",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "uint24",
"internalType": "uint24"
}
],
"stateMutability": "view"
},
{
"name": "V3_ROUTER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IV3SwapRouter02"
}
],
"stateMutability": "view"
},
{
"name": "V4_POOL_MANAGER",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "contract IV4PoolManager"
}
],
"stateMutability": "view"
},
{
"name": "WETH9",
"type": "function",
"inputs": [],
"outputs": [
{
"name": "",
"type": "address",
"internalType": "address"
}
],
"stateMutability": "view"
},
{
"name": "buyQuoteWithEth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "minOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "buyQuoteWithWeth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "wethIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "buyWithEth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "rvFee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tokenOut",
"type": "address",
"internalType": "address"
},
{
"name": "minTokensOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "buyWithWeth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "rvFee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tokenOut",
"type": "address",
"internalType": "address"
},
{
"name": "wethIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minTokensOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "sellForEth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "rvFee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tokenIn",
"type": "address",
"internalType": "address"
},
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minEthOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "ethOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "payable"
},
{
"name": "sellQuoteForEth",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "quote",
"type": "address",
"internalType": "address"
},
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minEthOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "ethOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "swapStockForUsdg",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "stock",
"type": "address",
"internalType": "address"
},
{
"name": "amountIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "swapUsdgForStock",
"type": "function",
"inputs": [
{
"name": "v4Key",
"type": "tuple",
"components": [
{
"name": "currency0",
"type": "address",
"internalType": "address"
},
{
"name": "currency1",
"type": "address",
"internalType": "address"
},
{
"name": "fee",
"type": "uint24",
"internalType": "uint24"
},
{
"name": "tickSpacing",
"type": "int24",
"internalType": "int24"
},
{
"name": "hooks",
"type": "address",
"internalType": "address"
}
],
"internalType": "struct V4PoolKey"
},
{
"name": "stock",
"type": "address",
"internalType": "address"
},
{
"name": "usdgIn",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "minOut",
"type": "uint256",
"internalType": "uint256"
},
{
"name": "deadline",
"type": "uint256",
"internalType": "uint256"
}
],
"outputs": [
{
"name": "amountOut",
"type": "uint256",
"internalType": "uint256"
}
],
"stateMutability": "nonpayable"
},
{
"name": "unlockCallback",
"type": "function",
"inputs": [
{
"name": "rawData",
"type": "bytes",
"internalType": "bytes"
}
],
"outputs": [
{
"name": "",
"type": "bytes",
"internalType": "bytes"
}
],
"stateMutability": "nonpayable"
},
{
"type": "receive",
"stateMutability": "payable"
}
]0x6101403461020657601f61220538819003918201601f19168301916001600160401b0383118484101761020a5780849260c094604052833981010312610206578051906001600160a01b03821682036102065760208101516001600160a01b03811681036102065760408201516001600160a01b0381168103610206576100886060840161021e565b9160a06100976080860161021e565b9401519462ffffff861686036102065760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005560805260a05260c05260e0526101005261012052604051611fd29081610233823960805181818161056b01528181610d94015281816113c80152611e87015260a05181818161014b015281816103c2015281816105f8015281816108c201528181610a4c015281816112a801526116ad015260c05181818161070901528181610aa6015281816115c101526118a4015260e0518181816101970152818161038b015281816105c1015281816109b9015281816111f30152818161154f01526116f901526101005181818161010f015281816103fa0152818161062f0152818161098201528181610cfc01528181611148015281816112200152818161150a015261166e0152610120518181816101c30152818161044401528181610679015281816109f001528181610c810152818161124c01526117250152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102065756fe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c9081631a6c39ba14611892575080633011e39c1461157e5780634aa4a4fc1461153957806357ae3a9f146114f45780637545c5e8146111a45780638dfbddea1461111e57806391dd734614610d3f578063974d90cd14610ca557806397c0aac514610c65578063a06a8277146108f1578063a1119856146108ac578063be51f19c1461059a578063e34e728314610555578063f9ae73ef146103625763fba86da70361000f573461035f576100d73661195d565b6100e49594919295611c64565b42116103505784156103415783926001600160a01b038116929190869061010d82303388611c9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169285840361032b57505061021b602091925b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169061017f858383611d2e565b6040519061018c826119f2565b815260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001694858583015262ffffff7f000000000000000000000000000000000000000000000000000000000000000016604083015230606083015260808201528760a08201528760c08201526040519889809481936304e45aaf60e01b835260048301611ab5565b03925af19485156102e45784956102f3575b50803b156102ef57838091602460405180948193632e1a7d4d60e01b83528a60048401525af180156102e4579084916102cb575b505083106102bc576020936102858380808088335af161027f611b2f565b50611b5e565b60405190815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b63bb2875c360e01b8252600482fd5b816102d591611a2a565b6102e057825f610261565b8280fd5b6040513d86823e3d90fd5b8380fd5b9094506020813d602011610323575b8161030f60209383611a2a565b8101031261031f5751935f61022d565b5f80fd5b3d9150610302565b60209261021b9261033b92611e3c565b92610149565b631f2a200560e01b8452600484fd5b63387b2e5560e11b8452600484fd5b80fd5b503461035f576103713661195d565b61037d94929194611c64565b4211610546578015610537577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316916103c082303386611c9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169386906103f8848787611d2e565b7f000000000000000000000000000000000000000000000000000000000000000090602061049d6040519861042c8a6119f2565b888a5260018060a01b038516998a8482015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001660408201523060608201528860808201528660a08201528660c08201526040519687809481936304e45aaf60e01b835260048301611ab5565b03925af192831561052c5789936104f8575b506001600160a01b03169586036104e957509050935b84106104da5760209450610285843385611f52565b63bb2875c360e01b8552600485fd5b6104f292611e3c565b936104c5565b9092506020813d602011610524575b8161051460209383611a2a565b8101031261031f5751915f6104af565b3d9150610507565b6040513d8b823e3d90fd5b631f2a200560e01b8552600485fd5b63387b2e5560e11b8552600485fd5b503461035f578060031936011261035f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b506105a4366118fd565b9394959091926105b2611c64565b84421161089d57831561088e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946105f685303389611c9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169261062c868589611d2e565b897f00000000000000000000000000000000000000000000000000000000000000009960206106d260405197610661896119f2565b8b89528d60018060a01b031698898482015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001660408201523060608201528b60808201528560a08201528560c08201526040519586809481936304e45aaf60e01b835260048301611ab5565b03925af1918215610883578c92610840575b5061079c9a6020966001600160a01b039092169594939291860361083157509050905b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169262ffffff90610742848688611d2e565b6040519561074f876119c1565b865260018060a01b0316998a87870152166040850152336060850152608084015260a08301528360c08301528860e0830152604051808099819463414bf38960e01b835260048301611a4c565b039134905af19485156108265786956107f2575b5084106104da576020945060405190815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b9094506020813d60201161081e575b8161080e60209383611a2a565b8101031261031f5751935f6107b0565b3d9150610801565b6040513d88823e3d90fd5b61083a92611e3c565b90610707565b9594939291506020863d60201161087b575b8161085f60209383611a2a565b8101031261031f5761079c9a602096519293949596509a6106e4565b3d9150610852565b6040513d8e823e3d90fd5b631f2a200560e01b8852600488fd5b63387b2e5560e11b8852600488fd5b503461035f578060031936011261035f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5036600319016101408112610c615760a01361035f5761090f6118d3565b60c4359062ffffff82168092036102e05760e4356001600160a01b03811691908290036102ef5761010435906101243593610948611c64565b844211610c525764e8d4a5100081029481860464e8d4a510001482151715610c3e5785341115610c2f5785340390348211610c1b57610a487f00000000000000000000000000000000000000000000000000000000000000009460206040516109b0816119f2565b60018060a01b037f000000000000000000000000000000000000000000000000000000000000000016815260018060a01b03881695868383015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001660408301523060608301528060808301528c60a08301528c60c083015260405180809681946304e45aaf60e01b835260048301611ab5565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610c10578a92610bd3575b50602095610b2b95946001600160a01b039092169392918403610bc15750905b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693610ada838686611d2e565b60405193610ae7856119c1565b845288878501526040840152336060840152608083015260a08201528460c08201528760e082015260405196878094819363414bf38960e01b835260048301611a4c565b03925af19283156102e4578493610b8d575b508210610b7e5760209260405134815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b63bb2875c360e01b8352600483fd5b9092506020813d602011610bb9575b81610ba960209383611a2a565b8101031261031f5751915f610b3d565b3d9150610b9c565b90610bcd916004611e3c565b90610aa4565b94939291506020853d602011610c08575b81610bf160209383611a2a565b8101031261031f5793519293919290916020610a84565b3d9150610be4565b6040513d8c823e3d90fd5b634e487b7160e01b88526011600452602488fd5b631f2a200560e01b8752600487fd5b634e487b7160e01b87526011600452602487fd5b63387b2e5560e11b8652600486fd5b5080fd5b503461035f578060031936011261035f57602060405162ffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461035f57610cb43661195d565b610cc19492939194611c64565b4211610546578215610537576001600160a01b03811691610cef918491610cea83303388611c9c565b611e3c565b928310610d3057602093507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691610285843385611f52565b63bb2875c360e01b8452600484fd5b503461035f57602036600319011261035f576004359067ffffffffffffffff821161035f573660238301121561035f57816004013567ffffffffffffffff8111610c615782019160248301923684116102e0577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316903382900361110f5760e090839003126102e057610de960405194610de086611a0e565b60248401611b9c565b93848152610df960c484016118e9565b6020820181815260e494909401356040830181905286516001600160a01b0392831692169190911490600160ff1b81146110a25781156110f4576401000276a4905b604051610e4781611a0e565b838152602081019188038252604081019260018060a01b03168352610e7d60405199633cf3645360e21b8b5260048b0190611c21565b51151560a48901525160c4880152516001600160a01b031660e487015261012061010487015261012486018590526020866101448188875af195861561106b5785966110bc575b50600f86810b9660801d900b81156110b6575b600f0b6f7fffffffffffffffffffffffffffffff1981146110a257845195966001600160801b0316958795906001600160a01b0316853b1561109e5760405190632961046560e21b825260048201528681602481838a5af180156110935786918891611076575b509151610f60939092036001600160801b0316916001600160a01b0316611f52565b604051630476982d60e21b815260208160048188885af1801561106b57611038575b50156110275751602001516001600160a01b0316905b803b156102e057606483926040519485938492630b0d9c0960e01b845260018060a01b031660048401523060248401528760448401525af1801561101c57611007575b6110038260405190602082015260208152610ff7604082611a2a565b60405191829182611997565b0390f35b611012838092611a2a565b610c615781610fdb565b6040513d85823e3d90fd5b51516001600160a01b031690610f98565b93506020843d602011611063575b8161105360209383611a2a565b8101031261031f57859351610f82565b3d9150611046565b6040513d87823e3d90fd5b8192509061108391611a2a565b61108f5784865f610f3e565b8580fd5b6040513d89823e3d90fd5b8680fd5b634e487b7160e01b86526011600452602486fd5b95610ed7565b9095506020813d6020116110ec575b816110d860209383611a2a565b810103126110e85751945f610ec4565b8480fd5b3d91506110cb565b73fffd8963efd1fc6a506488495d951d5263988d2590610e3b565b63f655705d60e01b8452600484fd5b503461035f5761112d3661195d565b61113a9492939194611c64565b4211610546578215610537577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811692611184918591610cea83303389611c9c565b9384106104da57602094506001600160a01b031691610285843385611f52565b5036600319016101008112610c615760a01361035f576111c26118d3565b6111ca611c64565b60e43542116114e55734156114d6576112a382604051926111ea846119f2565b60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000168452602060018060a01b037f00000000000000000000000000000000000000000000000000000000000000001694858282015262ffffff7f00000000000000000000000000000000000000000000000000000000000000001660408201523060608201523460808201528360a08201528360c0820152604051809581926304e45aaf60e01b835260048301611ab5565b0381347f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19283156114cb578293611494575b506001600160a01b031692808403611344575050905b60c4358210610b7e5760209261130d833384611f52565b60405134815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b6113c3926040519161135583611a0e565b6040611362366004611b9c565b938481526020810192835201918252611382604051936020850190611c21565b516001600160a01b031660c08301525160e08083019190915281526113a961010082611a2a565b604051809381926348c8949160e01b835260048301611997565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561101c57839161141c575b506020815191818082019384920101031261031f5751906112f6565b9050823d8082843e61142e8184611a2a565b820191602081840312610c615780519067ffffffffffffffff82116102e0570182601f82011215610c6157805161146481611b13565b936114726040519586611a2a565b818552602082840101116102e0578060208093018386015e830101525f611400565b915091506020813d6020116114c3575b816114b160209383611a2a565b8101031261031f57839051915f6112e0565b3d91506114a4565b6040513d84823e3d90fd5b631f2a200560e01b8252600482fd5b63387b2e5560e11b8252600482fd5b503461035f578060031936011261035f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461035f578060031936011261035f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50611588366118fd565b93919694611597939193611c64565b8442116118835787156118745760206116559260018060a01b0316956115bf8a30338a611c9c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166115f48b828a611d2e565b60405191611601836119c1565b88835262ffffff60018060a01b03861697888686015216604084015230606084015260808301528a60a08301525f60c08301525f60e0830152604051808096819463414bf38960e01b835260048301611a4c565b039134905af19182156117f2575f92611840575b505f967f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169360209361177d939091860361183157509050925b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906116e1858383611d2e565b604051906116ee826119f2565b815260018060a01b037f00000000000000000000000000000000000000000000000000000000000000001694858583015262ffffff7f000000000000000000000000000000000000000000000000000000000000000016604083015230606083015260808201528860a08201528860c08201526040519889809481936304e45aaf60e01b835260048301611ab5565b03925af19485156117f2575f956117fd575b50803b1561031f575f8091602460405180948193632e1a7d4d60e01b83528a60048401525af180156117f2576117dd575b5083106102bc576020936102858380808088335af161027f611b2f565b6117ea9193505f90611a2a565b5f915f6117c0565b6040513d5f823e3d90fd5b9094506020813d602011611829575b8161181960209383611a2a565b8101031261031f5751935f61178f565b3d915061180c565b61183a92611e3c565b926116ab565b9091506020813d60201161186c575b8161185c60209383611a2a565b8101031261031f5751905f611669565b3d915061184f565b631f2a200560e01b5f5260045ffd5b63387b2e5560e11b5f5260045ffd5b3461031f575f36600319011261031f577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a435906001600160a01b038216820361031f57565b35906001600160a01b038216820361031f57565b60031901610160811261031f5760a01361031f5760049060a4356001600160a01b038116810361031f579060c43562ffffff8116810361031f579060e4356001600160a01b038116810361031f5790610104359061012435906101443590565b60031901610120811261031f5760a01361031f5760049060a4356001600160a01b038116810361031f579060c4359060e435906101043590565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610100810190811067ffffffffffffffff8211176119de57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff8211176119de57604052565b6060810190811067ffffffffffffffff8211176119de57604052565b90601f8019910116810190811067ffffffffffffffff8211176119de57604052565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c0808401519083015260e09283015116918101919091526101000190565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b67ffffffffffffffff81116119de57601f01601f191660200190565b3d15611b59573d90611b4082611b13565b91611b4e6040519384611a2a565b82523d5f602084013e565b606090565b15611b6557565b60405162461bcd60e51b815260206004820152600f60248201526e115512081cd95b990819985a5b1959608a1b6044820152606490fd5b91908260a091031261031f5760405160a0810181811067ffffffffffffffff8211176119de576040528092611bd0816118e9565b8252611bde602082016118e9565b6020830152604081013562ffffff8116810361031f5760408301526060810135908160020b820361031f576080611c1c9181936060860152016118e9565b910152565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60025f80516020611fb28339815191525414611c8d5760025f80516020611fb283398151915255565b633ee5aeb560e01b5f5260045ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615611d0d575b6040525f60605215611ced5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516611d2557823b15153d15161690611cde565b503d5f823e3d90fd5b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615611e2d575b60405215611d7357505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f5114821615611e15575b60405215611df7576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f5114821615611ddf575b60405215611ced5750565b906001811516611d2557823b15153d15161690611dd4565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b906001811516611d2557843b15153d15161690611da0565b90843b15153d15161690611d66565b611e82925f926040611e5a815194611e5386611a0e565b3690611b9c565b93848152602081019260018060a01b0316835201918252611382604051936020850190611c21565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156117f2575f91611ed8575b506020815191818082019384920101031261031f575190565b90503d805f833e611ee98183611a2a565b81019060208183031261031f5780519067ffffffffffffffff821161031f570181601f8201121561031f57805190611f2082611b13565b92611f2e6040519485611a2a565b8284526020838301011161031f57815f9260208093018386015e830101525f611ebf565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611ddf5760405215611ced575056fe9082de0b30e7f62ccb02ee8e6b5ce17a6b608ba6a98385ba6e927d89c68c95c09b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f000000000000000000000000008366a39cc670b4001a1121b8f6a443a643e40951000000000000000000000000caf681a66d020601342297493863e78c959e5cb2000000000000000000000000e45070551c2d5458210042e0b3417374abbf67120000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad730000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d16800000000000000000000000000000000000000000000000000000000000001f4
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c9081631a6c39ba14611892575080633011e39c1461157e5780634aa4a4fc1461153957806357ae3a9f146114f45780637545c5e8146111a45780638dfbddea1461111e57806391dd734614610d3f578063974d90cd14610ca557806397c0aac514610c65578063a06a8277146108f1578063a1119856146108ac578063be51f19c1461059a578063e34e728314610555578063f9ae73ef146103625763fba86da70361000f573461035f576100d73661195d565b6100e49594919295611c64565b42116103505784156103415783926001600160a01b038116929190869061010d82303388611c9c565b7f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1686001600160a01b03169285840361032b57505061021b602091925b7f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03169061017f858383611d2e565b6040519061018c826119f2565b815260018060a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad731694858583015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f416604083015230606083015260808201528760a08201528760c08201526040519889809481936304e45aaf60e01b835260048301611ab5565b03925af19485156102e45784956102f3575b50803b156102ef57838091602460405180948193632e1a7d4d60e01b83528a60048401525af180156102e4579084916102cb575b505083106102bc576020936102858380808088335af161027f611b2f565b50611b5e565b60405190815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b63bb2875c360e01b8252600482fd5b816102d591611a2a565b6102e057825f610261565b8280fd5b6040513d86823e3d90fd5b8380fd5b9094506020813d602011610323575b8161030f60209383611a2a565b8101031261031f5751935f61022d565b5f80fd5b3d9150610302565b60209261021b9261033b92611e3c565b92610149565b631f2a200560e01b8452600484fd5b63387b2e5560e11b8452600484fd5b80fd5b503461035f576103713661195d565b61037d94929194611c64565b4211610546578015610537577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316916103c082303386611c9c565b7f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03169386906103f8848787611d2e565b7f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d16890602061049d6040519861042c8a6119f2565b888a5260018060a01b038516998a8482015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f41660408201523060608201528860808201528660a08201528660c08201526040519687809481936304e45aaf60e01b835260048301611ab5565b03925af192831561052c5789936104f8575b506001600160a01b03169586036104e957509050935b84106104da5760209450610285843385611f52565b63bb2875c360e01b8552600485fd5b6104f292611e3c565b936104c5565b9092506020813d602011610524575b8161051460209383611a2a565b8101031261031f5751915f6104af565b3d9150610507565b6040513d8b823e3d90fd5b631f2a200560e01b8552600485fd5b63387b2e5560e11b8552600485fd5b503461035f578060031936011261035f576040517f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03168152602090f35b506105a4366118fd565b9394959091926105b2611c64565b84421161089d57831561088e577f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b0316946105f685303389611c9c565b7f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03169261062c868589611d2e565b897f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1689960206106d260405197610661896119f2565b8b89528d60018060a01b031698898482015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f41660408201523060608201528b60808201528560a08201528560c08201526040519586809481936304e45aaf60e01b835260048301611ab5565b03925af1918215610883578c92610840575b5061079c9a6020966001600160a01b039092169594939291860361083157509050905b7f000000000000000000000000e45070551c2d5458210042e0b3417374abbf67126001600160a01b03169262ffffff90610742848688611d2e565b6040519561074f876119c1565b865260018060a01b0316998a87870152166040850152336060850152608084015260a08301528360c08301528860e0830152604051808099819463414bf38960e01b835260048301611a4c565b039134905af19485156108265786956107f2575b5084106104da576020945060405190815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b9094506020813d60201161081e575b8161080e60209383611a2a565b8101031261031f5751935f6107b0565b3d9150610801565b6040513d88823e3d90fd5b61083a92611e3c565b90610707565b9594939291506020863d60201161087b575b8161085f60209383611a2a565b8101031261031f5761079c9a602096519293949596509a6106e4565b3d9150610852565b6040513d8e823e3d90fd5b631f2a200560e01b8852600488fd5b63387b2e5560e11b8852600488fd5b503461035f578060031936011261035f576040517f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03168152602090f35b5036600319016101408112610c615760a01361035f5761090f6118d3565b60c4359062ffffff82168092036102e05760e4356001600160a01b03811691908290036102ef5761010435906101243593610948611c64565b844211610c525764e8d4a5100081029481860464e8d4a510001482151715610c3e5785341115610c2f5785340390348211610c1b57610a487f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1689460206040516109b0816119f2565b60018060a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7316815260018060a01b03881695868383015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f41660408301523060608301528060808301528c60a08301528c60c083015260405180809681946304e45aaf60e01b835260048301611ab5565b03917f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03165af1918215610c10578a92610bd3575b50602095610b2b95946001600160a01b039092169392918403610bc15750905b7f000000000000000000000000e45070551c2d5458210042e0b3417374abbf67126001600160a01b031693610ada838686611d2e565b60405193610ae7856119c1565b845288878501526040840152336060840152608083015260a08201528460c08201528760e082015260405196878094819363414bf38960e01b835260048301611a4c565b03925af19283156102e4578493610b8d575b508210610b7e5760209260405134815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b63bb2875c360e01b8352600483fd5b9092506020813d602011610bb9575b81610ba960209383611a2a565b8101031261031f5751915f610b3d565b3d9150610b9c565b90610bcd916004611e3c565b90610aa4565b94939291506020853d602011610c08575b81610bf160209383611a2a565b8101031261031f5793519293919290916020610a84565b3d9150610be4565b6040513d8c823e3d90fd5b634e487b7160e01b88526011600452602488fd5b631f2a200560e01b8752600487fd5b634e487b7160e01b87526011600452602487fd5b63387b2e5560e11b8652600486fd5b5080fd5b503461035f578060031936011261035f57602060405162ffffff7f00000000000000000000000000000000000000000000000000000000000001f4168152f35b503461035f57610cb43661195d565b610cc19492939194611c64565b4211610546578215610537576001600160a01b03811691610cef918491610cea83303388611c9c565b611e3c565b928310610d3057602093507f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1686001600160a01b031691610285843385611f52565b63bb2875c360e01b8452600484fd5b503461035f57602036600319011261035f576004359067ffffffffffffffff821161035f573660238301121561035f57816004013567ffffffffffffffff8111610c615782019160248301923684116102e0577f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b0316903382900361110f5760e090839003126102e057610de960405194610de086611a0e565b60248401611b9c565b93848152610df960c484016118e9565b6020820181815260e494909401356040830181905286516001600160a01b0392831692169190911490600160ff1b81146110a25781156110f4576401000276a4905b604051610e4781611a0e565b838152602081019188038252604081019260018060a01b03168352610e7d60405199633cf3645360e21b8b5260048b0190611c21565b51151560a48901525160c4880152516001600160a01b031660e487015261012061010487015261012486018590526020866101448188875af195861561106b5785966110bc575b50600f86810b9660801d900b81156110b6575b600f0b6f7fffffffffffffffffffffffffffffff1981146110a257845195966001600160801b0316958795906001600160a01b0316853b1561109e5760405190632961046560e21b825260048201528681602481838a5af180156110935786918891611076575b509151610f60939092036001600160801b0316916001600160a01b0316611f52565b604051630476982d60e21b815260208160048188885af1801561106b57611038575b50156110275751602001516001600160a01b0316905b803b156102e057606483926040519485938492630b0d9c0960e01b845260018060a01b031660048401523060248401528760448401525af1801561101c57611007575b6110038260405190602082015260208152610ff7604082611a2a565b60405191829182611997565b0390f35b611012838092611a2a565b610c615781610fdb565b6040513d85823e3d90fd5b51516001600160a01b031690610f98565b93506020843d602011611063575b8161105360209383611a2a565b8101031261031f57859351610f82565b3d9150611046565b6040513d87823e3d90fd5b8192509061108391611a2a565b61108f5784865f610f3e565b8580fd5b6040513d89823e3d90fd5b8680fd5b634e487b7160e01b86526011600452602486fd5b95610ed7565b9095506020813d6020116110ec575b816110d860209383611a2a565b810103126110e85751945f610ec4565b8480fd5b3d91506110cb565b73fffd8963efd1fc6a506488495d951d5263988d2590610e3b565b63f655705d60e01b8452600484fd5b503461035f5761112d3661195d565b61113a9492939194611c64565b4211610546578215610537577f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1686001600160a01b03811692611184918591610cea83303389611c9c565b9384106104da57602094506001600160a01b031691610285843385611f52565b5036600319016101008112610c615760a01361035f576111c26118d3565b6111ca611c64565b60e43542116114e55734156114d6576112a382604051926111ea846119f2565b60018060a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad73168452602060018060a01b037f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1681694858282015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f41660408201523060608201523460808201528360a08201528360c0820152604051809581926304e45aaf60e01b835260048301611ab5565b0381347f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b03165af19283156114cb578293611494575b506001600160a01b031692808403611344575050905b60c4358210610b7e5760209261130d833384611f52565b60405134815283858201525f80516020611f9283398151915260403392a460015f80516020611fb283398151915255604051908152f35b6113c3926040519161135583611a0e565b6040611362366004611b9c565b938481526020810192835201918252611382604051936020850190611c21565b516001600160a01b031660c08301525160e08083019190915281526113a961010082611a2a565b604051809381926348c8949160e01b835260048301611997565b0381837f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03165af190811561101c57839161141c575b506020815191818082019384920101031261031f5751906112f6565b9050823d8082843e61142e8184611a2a565b820191602081840312610c615780519067ffffffffffffffff82116102e0570182601f82011215610c6157805161146481611b13565b936114726040519586611a2a565b818552602082840101116102e0578060208093018386015e830101525f611400565b915091506020813d6020116114c3575b816114b160209383611a2a565b8101031261031f57839051915f6112e0565b3d91506114a4565b6040513d84823e3d90fd5b631f2a200560e01b8252600482fd5b63387b2e5560e11b8252600482fd5b503461035f578060031936011261035f576040517f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1686001600160a01b03168152602090f35b503461035f578060031936011261035f576040517f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168152602090f35b50611588366118fd565b93919694611597939193611c64565b8442116118835787156118745760206116559260018060a01b0316956115bf8a30338a611c9c565b7f000000000000000000000000e45070551c2d5458210042e0b3417374abbf67126001600160a01b03166115f48b828a611d2e565b60405191611601836119c1565b88835262ffffff60018060a01b03861697888686015216604084015230606084015260808301528a60a08301525f60c08301525f60e0830152604051808096819463414bf38960e01b835260048301611a4c565b039134905af19182156117f2575f92611840575b505f967f0000000000000000000000005fc5360d0400a0fd4f2af552add042d716f1d1686001600160a01b03169360209361177d939091860361183157509050925b7f000000000000000000000000caf681a66d020601342297493863e78c959e5cb26001600160a01b0316906116e1858383611d2e565b604051906116ee826119f2565b815260018060a01b037f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad731694858583015262ffffff7f00000000000000000000000000000000000000000000000000000000000001f416604083015230606083015260808201528860a08201528860c08201526040519889809481936304e45aaf60e01b835260048301611ab5565b03925af19485156117f2575f956117fd575b50803b1561031f575f8091602460405180948193632e1a7d4d60e01b83528a60048401525af180156117f2576117dd575b5083106102bc576020936102858380808088335af161027f611b2f565b6117ea9193505f90611a2a565b5f915f6117c0565b6040513d5f823e3d90fd5b9094506020813d602011611829575b8161181960209383611a2a565b8101031261031f5751935f61178f565b3d915061180c565b61183a92611e3c565b926116ab565b9091506020813d60201161186c575b8161185c60209383611a2a565b8101031261031f5751905f611669565b3d915061184f565b631f2a200560e01b5f5260045ffd5b63387b2e5560e11b5f5260045ffd5b3461031f575f36600319011261031f577f000000000000000000000000e45070551c2d5458210042e0b3417374abbf67126001600160a01b03168152602090f35b60a435906001600160a01b038216820361031f57565b35906001600160a01b038216820361031f57565b60031901610160811261031f5760a01361031f5760049060a4356001600160a01b038116810361031f579060c43562ffffff8116810361031f579060e4356001600160a01b038116810361031f5790610104359061012435906101443590565b60031901610120811261031f5760a01361031f5760049060a4356001600160a01b038116810361031f579060c4359060e435906101043590565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610100810190811067ffffffffffffffff8211176119de57604052565b634e487b7160e01b5f52604160045260245ffd5b60e0810190811067ffffffffffffffff8211176119de57604052565b6060810190811067ffffffffffffffff8211176119de57604052565b90601f8019910116810190811067ffffffffffffffff8211176119de57604052565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c0808401519083015260e09283015116918101919091526101000190565b81516001600160a01b03908116825260208084015182169083015260408084015162ffffff16908301526060808401518216908301526080808401519083015260a0808401519083015260c092830151169181019190915260e00190565b67ffffffffffffffff81116119de57601f01601f191660200190565b3d15611b59573d90611b4082611b13565b91611b4e6040519384611a2a565b82523d5f602084013e565b606090565b15611b6557565b60405162461bcd60e51b815260206004820152600f60248201526e115512081cd95b990819985a5b1959608a1b6044820152606490fd5b91908260a091031261031f5760405160a0810181811067ffffffffffffffff8211176119de576040528092611bd0816118e9565b8252611bde602082016118e9565b6020830152604081013562ffffff8116810361031f5760408301526060810135908160020b820361031f576080611c1c9181936060860152016118e9565b910152565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60025f80516020611fb28339815191525414611c8d5760025f80516020611fb283398151915255565b633ee5aeb560e01b5f5260045ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af19060015f5114821615611d0d575b6040525f60605215611ced5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b906001811516611d2557823b15153d15161690611cde565b503d5f823e3d90fd5b916040519163095ea7b360e01b5f5260018060a01b031691826004528160245260205f60448180885af19060015f5114821615611e2d575b60405215611d7357505050565b60405163095ea7b360e01b5f52826004525f60245260205f60448180885af19060015f5114821615611e15575b60405215611df7576040519163095ea7b360e01b5f5260045260245260205f60448180865af19060015f5114821615611ddf575b60405215611ced5750565b906001811516611d2557823b15153d15161690611dd4565b635274afe760e01b5f9081526001600160a01b038416600452602490fd5b906001811516611d2557843b15153d15161690611da0565b90843b15153d15161690611d66565b611e82925f926040611e5a815194611e5386611a0e565b3690611b9c565b93848152602081019260018060a01b0316835201918252611382604051936020850190611c21565b0381837f0000000000000000000000008366a39cc670b4001a1121b8f6a443a643e409516001600160a01b03165af19081156117f2575f91611ed8575b506020815191818082019384920101031261031f575190565b90503d805f833e611ee98183611a2a565b81019060208183031261031f5780519067ffffffffffffffff821161031f570181601f8201121561031f57805190611f2082611b13565b92611f2e6040519485611a2a565b8284526020838301011161031f57815f9260208093018386015e830101525f611ebf565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af19060015f5114821615611ddf5760405215611ced575056fe9082de0b30e7f62ccb02ee8e6b5ce17a6b608ba6a98385ba6e927d89c68c95c09b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00
| Token | Symbol | Balance | Price | Value |
|---|---|---|---|---|
| Global Dollar (USDG) | USDG | 165.831 | $1 | $165.83 |
| Globals Dollars (USDG) | USDG | 78 | $1 | $78 |
| global dollar (USDG) | USDG | 69 | $1 | $69 |
| Global Dollar (USDG) | USDG | 34 | $1 | $34 |
| Global Dollar (USDG) | USDG | 10 | $1 | $10 |
| Global Dollar (USDG) | USDG | 10 | $1 | $10 |
| Global Dollar (USDG) | USDG | 6.22 | $1 | $6.22 |
| Global Dollar (USDG) | USDG | 3 | $1 | $3 |
| Universal Stable Digital Coin (USDC) | USDC | 2 | $1 | $2 |
| DIH | 2 | $0.0000123 | $0 | |
| Ravenhood (RVHOOD) | RVHOOD | 100 | — | — |
| Bycocket (BYCOCKET) | BYCOCKET | 17 | — | — |
| pipedoge (PIPEDOGE) | PIPEDOGE | 15 | — | — |
| Paradise (PONS) | PONS | 10 | — | — |
| Memestock (MEMESTOCK) | MEMESTOCK | 10 | — | — |
| Hoodrat (HOODRAT) | HOODRAT | 6 | — | — |
| $1 is all you need ($1) | $1 | 5 | — | — |
| Pons (PONS) | PONS | 3 | — | — |
| Type | Age | Block | Details |
|---|---|---|---|
| no cross-chain L1↔L2 transactions for this address | |||
| Transaction Hash | Method | Block | Age | From | To | Type | Item | ||
|---|---|---|---|---|---|---|---|---|---|
| no NFT transfers for this address yet | |||||||||
| Transaction Hash | Method ? | Block | Age | From | To | Amount | Txn Fee ? | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x3f8c79…460337 | swapStockForUsdg | 30,330,945 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000543 | |
| 0x6ff0a7…d7b192 | swapStockForUsdg | 30,330,693 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000539 | |
| 0x6ebaba…bcdd58 | swapStockForUsdg | 30,330,505 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000536 | |
| 0x4db0f4…c4c9de | swapStockForUsdg | 30,330,368 | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000541 | |
| 0x85503b…509bc1 | swapStockForUsdg | 30,330,211 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000585 | |
| 0x1b9642…a27fa6 | sellQuoteForEth | 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0xc9de…4b26 | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000918 | |
| 0x95adde…b13c83 | sellQuoteForEth | 29,630,932 | 9 days agoThu, 06 Aug 2026 20:19:42 UTC | 0xc9de…4b26 | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000914 | |
| 0x60e9a9…4dc19c | sellForEth | 29,629,575 | 9 days agoThu, 06 Aug 2026 20:17:26 UTC | 0xc9de…4b26 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00001354 | |
| 0xa995ce…071a76 | buyQuoteWithEth | 28,889,703 | 9 days agoWed, 05 Aug 2026 23:41:56 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $395.480.21 ETH | 0.00000434 | |
| 0xb58708…e7344a | sellForEth | 24,401,643 | 15 days agoFri, 31 Jul 2026 18:42:54 UTC | 0xd735…b4f0 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00000887 | |
| 0xbf0bf2…a350f6 | sellForEth | 24,184,344 | 15 days agoFri, 31 Jul 2026 12:40:19 UTC | 0x7cbe…76a3 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00000878 | |
| 0x32695b…ff43bd | sellQuoteForEth | 21,777,696 | 18 days agoTue, 28 Jul 2026 17:38:47 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00000855 | |
| 0xe24706…adc0c4 | buyQuoteWithEth | 21,220,015 | 18 days agoTue, 28 Jul 2026 02:05:53 UTC | 0x3fd8…670e | IN | RobinVistaCrossRouter | $22.600.012 ETH | 0.00001021 | |
| 0xe2921e…688487 | sellForEth | 20,991,263 | 19 days agoMon, 27 Jul 2026 19:43:33 UTC | 0x9b73…b672 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00001626 | |
| 0xe97eb7…503aba | sellForEth | 20,818,157 | 19 days agoMon, 27 Jul 2026 14:52:14 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00001607 | |
| 0xe534a4…429f75 | sellForEth | 19,823,849 | 20 days agoSun, 26 Jul 2026 11:10:09 UTC | 0xd735…b4f0 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00002314 | |
| 0x87b73a…2a9183 | buyWithEth | 19,712,476 | 20 days agoSun, 26 Jul 2026 08:03:50 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $96.040.051 ETH | 0.00002290 | |
| 0x6eca7d…bd608c | buyWithEth | 19,712,242 | 20 days agoSun, 26 Jul 2026 08:03:27 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $190.210.101 ETH | 0.00002398 | |
| 0x95464b…0e2692 | sellQuoteForEth | 19,043,826 | 21 days agoSat, 25 Jul 2026 13:25:27 UTC | 0x56b3…c4c7 | IN | RobinVistaCrossRouter | $0.000 ETH | 0.00002335 | |
| 0x2e9025…e64ab4 | sellForEth | 18,158,782 | 22 days agoFri, 24 Jul 2026 12:45:18 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00004645 | |
| 0x825f19…b0395f | sellForEth | 18,158,351 | 22 days agoFri, 24 Jul 2026 12:44:35 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $1.880.001 ETH | 0.00004729 | |
| 0xccda3d…691520 | buyWithEth | 18,089,025 | 22 days agoFri, 24 Jul 2026 10:48:27 UTC | 0x0076…02a4 | IN | RobinVistaCrossRouter | $133.710.071 ETH | 0.00004357 | |
| 0x3b118e…7d5747 | buyWithEth | 18,010,213 | 22 days agoFri, 24 Jul 2026 08:36:30 UTC | 0xbae1…d9a0 | IN | RobinVistaCrossRouter | $47.080.025 ETH | 0.00004766 | |
| 0x261beb…f72f7c | buyWithEth | 18,005,296 | 22 days agoFri, 24 Jul 2026 08:28:17 UTC | 0xe377…144a | IN | RobinVistaCrossRouter | $96.040.051 ETH | 0.00004789 | |
| 0xba8880…fc5028 | buyQuoteWithEth | 17,866,233 | 22 days agoFri, 24 Jul 2026 04:35:34 UTC | 0x56b3…c4c7 | IN | RobinVistaCrossRouter | $282.480.15 ETH | 0.00003337 |
| Txn Hash | Age | Event | Topics / Data |
|---|---|---|---|
| 0x3f8c79…460337 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…fae35eea [2] 0x000000000000…16f1d168 data: 0x000000000000000000…0056af63 |
| 0x6ff0a7…d7b192 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…adad4fe3 [2] 0x000000000000…16f1d168 data: 0x000000000000000000…00583025 |
| 0x6ebaba…bcdd58 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…8f8a93f9 [2] 0x000000000000…16f1d168 data: 0x000000000000000000…004ecdba |
| 0x4db0f4…c4c9de | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…1c003b2d [2] 0x000000000000…16f1d168 data: 0x000000000000000000…004f9942 |
| 0x85503b…509bc1 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…320d9eec [2] 0x000000000000…16f1d168 data: 0x000000000000000000…0052dbd3 |
| 0x1b9642…a27fa6 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0x9082de…95c0 | [0] 0x000000000000…63864b26 [1] 0x000000000000…fae35eea [2] 0x000000000000…00000000 data: 0x000000000000000000…2d302ba4 |
| 0x95adde…b13c83 | 9 days agoThu, 06 Aug 2026 20:19:42 UTC | 0x9082de…95c0 | [0] 0x000000000000…63864b26 [1] 0x000000000000…320d9eec [2] 0x000000000000…00000000 data: 0x000000000000000000…2ce8cc2e |
| 0x60e9a9…4dc19c | 9 days agoThu, 06 Aug 2026 20:17:26 UTC | 0x9082de…95c0 | [0] 0x000000000000…63864b26 [1] 0x000000000000…a81216da [2] 0x000000000000…00000000 data: 0x000000000000000000…95f652df |
| 0xa995ce…071a76 | 9 days agoWed, 05 Aug 2026 23:41:56 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…00000000 [2] 0x000000000000…16f1d168 data: 0x000000000000000000…17e352a8 |
| 0xb58708…e7344a | 15 days agoFri, 31 Jul 2026 18:42:54 UTC | 0x9082de…95c0 | [0] 0x000000000000…7db2b4f0 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…9d703d25 |
| 0xbf0bf2…a350f6 | 15 days agoFri, 31 Jul 2026 12:40:19 UTC | 0x9082de…95c0 | [0] 0x000000000000…9ea276a3 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…f581309a |
| 0x32695b…ff43bd | 18 days agoTue, 28 Jul 2026 17:38:47 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…320d9eec [2] 0x000000000000…00000000 data: 0x000000000000000000…d3159a4d |
| 0xe24706…adc0c4 | 18 days agoTue, 28 Jul 2026 02:05:53 UTC | 0x9082de…95c0 | [0] 0x000000000000…4b77670e [1] 0x000000000000…00000000 [2] 0x000000000000…320d9eec data: 0x000000000000000000…93eadf0c |
| 0xe2921e…688487 | 19 days agoMon, 27 Jul 2026 19:43:33 UTC | 0x9082de…95c0 | [0] 0x000000000000…8b7fb672 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…b1f80707 |
| 0xe97eb7…503aba | 19 days agoMon, 27 Jul 2026 14:52:14 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…bf68ad5b |
| 0xe534a4…429f75 | 20 days agoSun, 26 Jul 2026 11:10:09 UTC | 0x9082de…95c0 | [0] 0x000000000000…7db2b4f0 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…5f1ac98a |
| 0x87b73a…2a9183 | 20 days agoSun, 26 Jul 2026 08:03:50 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…00000000 [2] 0x000000000000…df9ad383 data: 0x000000000000000000…d988b163 |
| 0x6eca7d…bd608c | 20 days agoSun, 26 Jul 2026 08:03:27 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…00000000 [2] 0x000000000000…df9ad383 data: 0x000000000000000000…7e52ac05 |
| 0x95464b…0e2692 | 21 days agoSat, 25 Jul 2026 13:25:27 UTC | 0x9082de…95c0 | [0] 0x000000000000…5d35c4c7 [1] 0x000000000000…320d9eec [2] 0x000000000000…00000000 data: 0x000000000000000000…b8902a68 |
| 0x2e9025…e64ab4 | 22 days agoFri, 24 Jul 2026 12:45:18 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…400228c1 |
| 0x825f19…b0395f | 22 days agoFri, 24 Jul 2026 12:44:35 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…df9ad383 [2] 0x000000000000…00000000 data: 0x000000000000000000…58fee5a6 |
| 0xccda3d…691520 | 22 days agoFri, 24 Jul 2026 10:48:27 UTC | 0x9082de…95c0 | [0] 0x000000000000…146d02a4 [1] 0x000000000000…00000000 [2] 0x000000000000…df9ad383 data: 0x000000000000000000…16ea2ad8 |
| 0x3b118e…7d5747 | 22 days agoFri, 24 Jul 2026 08:36:30 UTC | 0x9082de…95c0 | [0] 0x000000000000…0bfbd9a0 [1] 0x000000000000…00000000 [2] 0x000000000000…df9ad383 data: 0x000000000000000000…a3fe355a |
| 0x261beb…f72f7c | 22 days agoFri, 24 Jul 2026 08:28:17 UTC | 0x9082de…95c0 | [0] 0x000000000000…eede144a [1] 0x000000000000…00000000 [2] 0x000000000000…df9ad383 data: 0x000000000000000000…21437f16 |
| 0xba8880…fc5028 | 22 days agoFri, 24 Jul 2026 04:35:34 UTC | 0x9082de…95c0 | [0] 0x000000000000…5d35c4c7 [1] 0x000000000000…00000000 [2] 0x000000000000…320d9eec data: 0x000000000000000000…203d408b |
| Transaction Hash | Method | Block | Age | From | To | Amount | Token | ||
|---|---|---|---|---|---|---|---|---|---|
| 0x9c91d9b3…9925af | Transfer | 33,917,637 | 4 days agoTue, 11 Aug 2026 19:34:33 UTC | 0x3f48…48ee | IN | 0xa85f…adaf | 2 USDC | Universal Stable Digital Coin (USDC) | |
| 0x3f8c7951…460337 | Transfer | 30,330,945 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0xa85f…adaf | OUT | 0x3fd8…670e | $5.655.680995 USDG | Global Dollar (USDG) | |
| 0x3f8c7951…460337 | Transfer | 30,330,945 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $5.655.680995 USDG | Global Dollar (USDG) | |
| 0x3f8c7951…460337 | Transfer | 30,330,945 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0xa85f…adaf | OUT | 0x8366…0951 | 0.045050 SPCX | Space Exploration Technologies Corp. Class A Common Stock • Robinhood Token (SPCX) | |
| 0x3f8c7951…460337 | Transfer | 30,330,945 | 8 days agoFri, 07 Aug 2026 15:48:37 UTC | 0x3fd8…670e | IN | 0xa85f…adaf | 0.045050 SPCX | Space Exploration Technologies Corp. Class A Common Stock • Robinhood Token (SPCX) | |
| 0x6ff0a79a…d7b192 | Transfer | 30,330,693 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0xa85f…adaf | OUT | 0x3fd8…670e | $5.745.779493 USDG | Global Dollar (USDG) | |
| 0x6ff0a79a…d7b192 | Transfer | 30,330,693 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $5.745.779493 USDG | Global Dollar (USDG) | |
| 0x6ff0a79a…d7b192 | Transfer | 30,330,693 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0xa85f…adaf | OUT | 0x8366…0951 | 0.016273 GOOGL | Alphabet Class A • Robinhood Token (GOOGL) | |
| 0x6ff0a79a…d7b192 | Transfer | 30,330,693 | 8 days agoFri, 07 Aug 2026 15:48:12 UTC | 0x3fd8…670e | IN | 0xa85f…adaf | 0.016273 GOOGL | Alphabet Class A • Robinhood Token (GOOGL) | |
| 0x6ebaba58…bcdd58 | Transfer | 30,330,505 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0xa85f…adaf | OUT | 0x3fd8…670e | $5.135.164474 USDG | Global Dollar (USDG) | |
| 0x6ebaba58…bcdd58 | Transfer | 30,330,505 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $5.135.164474 USDG | Global Dollar (USDG) | |
| 0x6ebaba58…bcdd58 | Transfer | 30,330,505 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0xa85f…adaf | OUT | 0x8366…0951 | $5.180.016675 AAPL | Apple • Robinhood Token (AAPL) | |
| 0x6ebaba58…bcdd58 | Transfer | 30,330,505 | 8 days agoFri, 07 Aug 2026 15:47:53 UTC | 0x3fd8…670e | IN | 0xa85f…adaf | $5.180.016675 AAPL | Apple • Robinhood Token (AAPL) | |
| 0x4db0f42c…c4c9de | Transfer | 30,330,368 | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0xa85f…adaf | OUT | 0x3fd8…670e | $5.195.216578 USDG | Global Dollar (USDG) | |
| 0x4db0f42c…c4c9de | Transfer | 30,330,368 | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $5.195.216578 USDG | Global Dollar (USDG) | |
| 0x4db0f42c…c4c9de | Transfer | 30,330,368 | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0xa85f…adaf | OUT | 0x8366…0951 | $5.360.015745 TSLA | Tesla • Robinhood Token (TSLA) | |
| 0x4db0f42c…c4c9de | Transfer | 30,330,368 | 8 days agoFri, 07 Aug 2026 15:47:39 UTC | 0x3fd8…670e | IN | 0xa85f…adaf | $5.360.015745 TSLA | Tesla • Robinhood Token (TSLA) | |
| 0x85503b58…509bc1 | Transfer | 30,330,211 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0xa85f…adaf | OUT | 0x3fd8…670e | $5.405.430227 USDG | Global Dollar (USDG) | |
| 0x85503b58…509bc1 | Transfer | 30,330,211 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $5.405.430227 USDG | Global Dollar (USDG) | |
| 0x85503b58…509bc1 | Transfer | 30,330,211 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0xa85f…adaf | OUT | 0x8366…0951 | $5.490.024347 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0x85503b58…509bc1 | Transfer | 30,330,211 | 8 days agoFri, 07 Aug 2026 15:47:23 UTC | 0x3fd8…670e | IN | 0xa85f…adaf | $5.490.024347 NVDA | NVIDIA • Robinhood Token (NVDA) | |
| 0x1b96426e…a27fa6 | Transfer | 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0xa85f…adaf | OUT | 0x0000…0000 | 0.043385 WETH | WETH (WETH) | |
| 0x1b96426e…a27fa6 | Transfer | 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0xa85f…adaf | OUT | 0x69bf…8d9a | $82.3182.802552 USDG | Global Dollar (USDG) | |
| 0x1b96426e…a27fa6 | Transfer | 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0x69bf…8d9a | IN | 0xa85f…adaf | 0.043385 WETH | WETH (WETH) | |
| 0x1b96426e…a27fa6 | Transfer | 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0x8366…0951 | IN | 0xa85f…adaf | $82.3182.802552 USDG | Global Dollar (USDG) |
| Block | Age | Parent Transaction Hash | Type | Method | From | To | Value | |
|---|---|---|---|---|---|---|---|---|
| 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0x1b9642…a27fa6 | CALL | sellQuoteForEth | 0xa85f…adaf | OUT | 0xc9de…4b26 | 0.04338 ETH |
| 29,631,398 | 9 days agoThu, 06 Aug 2026 20:20:27 UTC | 0x1b9642…a27fa6 | CALL | sellQuoteForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.04338 ETH |
| 29,630,932 | 9 days agoThu, 06 Aug 2026 20:19:42 UTC | 0x95adde…b13c83 | CALL | sellQuoteForEth | 0xa85f…adaf | OUT | 0xc9de…4b26 | 0.09907 ETH |
| 29,630,932 | 9 days agoThu, 06 Aug 2026 20:19:42 UTC | 0x95adde…b13c83 | CALL | sellQuoteForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.09907 ETH |
| 29,629,575 | 9 days agoThu, 06 Aug 2026 20:17:26 UTC | 0x60e9a9…4dc19c | CALL | sellForEth | 0xa85f…adaf | OUT | 0xc9de…4b26 | 0.00889 ETH |
| 29,629,575 | 9 days agoThu, 06 Aug 2026 20:17:26 UTC | 0x60e9a9…4dc19c | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.00889 ETH |
| 29,629,575 | 9 days agoThu, 06 Aug 2026 20:17:26 UTC | 0x60e9a9…4dc19c | CALL | sellForEth | 0xa85f…adaf | OUT | 0xe450…6712 | 0.001 ETH |
| 28,889,703 | 9 days agoWed, 05 Aug 2026 23:41:56 UTC | 0xa995ce…071a76 | CALL | buyQuoteWithEth | 0xa85f…adaf | OUT | 0xcaf6…5cb2 | 0.21 ETH |
| 24,401,643 | 15 days agoFri, 31 Jul 2026 18:42:54 UTC | 0xb58708…e7344a | CALL | sellForEth | 0xa85f…adaf | OUT | 0xd735…b4f0 | 0.01806 ETH |
| 24,401,643 | 15 days agoFri, 31 Jul 2026 18:42:54 UTC | 0xb58708…e7344a | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.01806 ETH |
| 24,401,643 | 15 days agoFri, 31 Jul 2026 18:42:54 UTC | 0xb58708…e7344a | CALL | sellForEth | 0xa85f…adaf | OUT | 0xe450…6712 | 0.001 ETH |
| 24,184,344 | 15 days agoFri, 31 Jul 2026 12:40:19 UTC | 0xbf0bf2…a350f6 | CALL | sellForEth | 0xa85f…adaf | OUT | 0x7cbe…76a3 | 0.00748 ETH |
| 24,184,344 | 15 days agoFri, 31 Jul 2026 12:40:19 UTC | 0xbf0bf2…a350f6 | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.00748 ETH |
| 24,184,344 | 15 days agoFri, 31 Jul 2026 12:40:19 UTC | 0xbf0bf2…a350f6 | CALL | sellForEth | 0xa85f…adaf | OUT | 0xe450…6712 | 0.001 ETH |
| 21,777,696 | 18 days agoTue, 28 Jul 2026 17:38:47 UTC | 0x32695b…ff43bd | CALL | sellQuoteForEth | 0xa85f…adaf | OUT | 0x3fd8…670e | 0.01192 ETH |
| 21,777,696 | 18 days agoTue, 28 Jul 2026 17:38:47 UTC | 0x32695b…ff43bd | CALL | sellQuoteForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.01192 ETH |
| 21,220,015 | 18 days agoTue, 28 Jul 2026 02:05:53 UTC | 0xe24706…adc0c4 | CALL | buyQuoteWithEth | 0xa85f…adaf | OUT | 0xcaf6…5cb2 | 0.012 ETH |
| 20,991,263 | 19 days agoMon, 27 Jul 2026 19:43:33 UTC | 0xe2921e…688487 | CALL | sellForEth | 0xa85f…adaf | OUT | 0x9b73…b672 | 0.02153 ETH |
| 20,991,263 | 19 days agoMon, 27 Jul 2026 19:43:33 UTC | 0xe2921e…688487 | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.02153 ETH |
| 20,991,263 | 19 days agoMon, 27 Jul 2026 19:43:33 UTC | 0xe2921e…688487 | CALL | sellForEth | 0xa85f…adaf | OUT | 0xe450…6712 | 0.001 ETH |
| 20,818,157 | 19 days agoMon, 27 Jul 2026 14:52:14 UTC | 0xe97eb7…503aba | CALL | sellForEth | 0xa85f…adaf | OUT | 0x0076…02a4 | 0.13262 ETH |
| 20,818,157 | 19 days agoMon, 27 Jul 2026 14:52:14 UTC | 0xe97eb7…503aba | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.13262 ETH |
| 20,818,157 | 19 days agoMon, 27 Jul 2026 14:52:14 UTC | 0xe97eb7…503aba | CALL | sellForEth | 0xa85f…adaf | OUT | 0xe450…6712 | 0.001 ETH |
| 19,823,849 | 20 days agoSun, 26 Jul 2026 11:10:09 UTC | 0xe534a4…429f75 | CALL | sellForEth | 0xa85f…adaf | OUT | 0xd735…b4f0 | 0.05994 ETH |
| 19,823,849 | 20 days agoSun, 26 Jul 2026 11:10:09 UTC | 0xe534a4…429f75 | CALL | sellForEth | 0x0bd7…ad73 | IN | 0xa85f…adaf | 0.05994 ETH |