Transaction Hash:
Block:
22545881 at May-23-2025 01:31:47 PM +UTC
Transaction Fee:
0.0011225784456387 ETH
$3.14
Gas Used:
238,863 Gas / 4.6996749 Gwei
Emitted Events:
104 |
WETH9.Deposit( dst=[Receiver] UniversalRouter, wad=241600000000000000 )
|
105 |
TetherToken.Transfer( from=UniswapV3Pool, to=[Receiver] UniversalRouter, value=618906603 )
|
106 |
WETH9.Transfer( src=[Receiver] UniversalRouter, dst=UniswapV3Pool, wad=241600000000000000 )
|
107 |
UniswapV3Pool.Swap( sender=[Receiver] UniversalRouter, recipient=[Receiver] UniversalRouter, amount0=241600000000000000, amount1=-618906603, sqrtPriceX96=4010950866176915488575059, liquidity=537840494550627449, tick=-197832 )
|
108 |
BlockvToken.Transfer( from=UniswapV3Pool, to=[Receiver] UniversalRouter, value=38151888693609940281238 )
|
109 |
TetherToken.Transfer( from=[Receiver] UniversalRouter, to=UniswapV3Pool, value=618906603 )
|
110 |
UniswapV3Pool.Swap( sender=[Receiver] UniversalRouter, recipient=[Receiver] UniversalRouter, amount0=-38151888693609940281238, amount1=618906603, sqrtPriceX96=10046466684311822922966, liquidity=4012855749928925758, tick=-317629 )
|
111 |
BlockvToken.Transfer( from=[Receiver] UniversalRouter, to=FeeCollector, value=95379721734024850703 )
|
112 |
BlockvToken.Transfer( from=[Receiver] UniversalRouter, to=[Sender] 0x1db2342accb24049a9feb50cbbb5c1f0f187dcd7, value=38056508971875915430535 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x09650109...2e0347A64 | (Uniswap V3: VEE-USDT 2) | ||||
0x11b815ef...14B7697F6 | (Uniswap V3: USDT 3) | ||||
0x1DB2342a...0f187dcD7 |
0.243565999989603949 Eth
Nonce: 187
|
0.000843421543965249 Eth
Nonce: 188
| 0.2427225784456387 | ||
0x340D2bdE...B160613B7 | |||||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 5.374696832899698688 Eth | 5.375174558899698688 Eth | 0.000477726 | |
0xC02aaA39...83C756Cc2 | 2,795,684.174441900252719646 Eth | 2,795,684.416041900252719646 Eth | 0.2416 | ||
0xdAC17F95...13D831ec7 |
Execution Trace
ETH 0.2416
UniversalRouter.execute( commands=0x0B000604, inputs=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWlXrgbwAAA==, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADWlXrgbwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAmBDjhmKLQ1vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCwCqqObIj/o0KDlxPJ+rZCDx1bMIAAfTawX+VjS7lI6IgYgaZRZfBPYMexwAnEDQNK95esowe7ZGy95ByPjsWBhO3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA, AAAAAAAAAAAAAAAANA0r3l6yjB7tkbL3kHI+OxYGE7cAAAAAAAAAAAAAAAAAAAD+4ToQOhDVk7muBrPgXy5+HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ, AAAAAAAAAAAAAAAANA0r3l6yjB7tkbL3kHI+OxYGE7cAAAAAAAAAAAAAAAAdsjQqzLJASan+tQy7tcHw8Yfc1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAmBDjhmKLQ1v], deadline=1748008887 )
- ETH 0.2416
WETH9.CALL( )
UniswapV3Pool.swap( recipient=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, zeroForOne=True, amountSpecified=241600000000000000, sqrtPriceLimitX96=4295128740, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000 ) => ( amount0=241600000000000000, amount1=-618906603 )
-
TetherToken.transfer( _to=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, _value=618906603 )
-
WETH9.balanceOf( 0x11b815efB8f581194ae79006d24E0d814B7697F6 ) => ( 1924752350405999750113 )
UniversalRouter.uniswapV3SwapCallback( amount0Delta=241600000000000000, amount1Delta=-618906603, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC20001F4DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000 )
-
WETH9.transfer( dst=0x11b815efB8f581194ae79006d24E0d814B7697F6, wad=241600000000000000 ) => ( True )
-
-
WETH9.balanceOf( 0x11b815efB8f581194ae79006d24E0d814B7697F6 ) => ( 1924993950405999750113 )
-
UniswapV3Pool.swap( recipient=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, zeroForOne=False, amountSpecified=618906603, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BDAC17F958D2EE523A2206206994597C13D831EC7002710340D2BDE5EB28C1EED91B2F790723E3B160613B7000000000000000000000000000000000000000000 ) => ( amount0=-38151888693609940281238, amount1=618906603 )
-
BlockvToken.transfer( _to=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, _value=38151888693609940281238 ) => ( True )
-
TetherToken.balanceOf( who=0x096501097213216A36f33b3D7e0FF4c2e0347A64 ) => ( 198078167919 )
UniversalRouter.uniswapV3SwapCallback( amount0Delta=-38151888693609940281238, amount1Delta=618906603, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BDAC17F958D2EE523A2206206994597C13D831EC7002710340D2BDE5EB28C1EED91B2F790723E3B160613B7000000000000000000000000000000000000000000 )
-
TetherToken.transfer( _to=0x096501097213216A36f33b3D7e0FF4c2e0347A64, _value=618906603 )
-
-
TetherToken.balanceOf( who=0x096501097213216A36f33b3D7e0FF4c2e0347A64 ) => ( 198697074522 )
-
-
BlockvToken.balanceOf( _owner=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD ) => ( balance=38151888693609940281238 )
-
BlockvToken.transfer( _to=0x000000fee13a103A10D593b9AE06b3e05F2E7E1c, _value=95379721734024850703 ) => ( True )
-
BlockvToken.balanceOf( _owner=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD ) => ( balance=38056508971875915430535 )
-
BlockvToken.transfer( _to=0x1DB2342aCCB24049A9FEb50cBBb5c1F0f187dcD7, _value=38056508971875915430535 ) => ( True )
execute[UniversalRouter (ln:16)]
execute[UniversalRouter (ln:21)]
execute[UniversalRouter (ln:21)]
File 1 of 7: UniversalRouter
File 2 of 7: WETH9
File 3 of 7: UniswapV3Pool
File 4 of 7: TetherToken
File 5 of 7: UniswapV3Pool
File 6 of 7: BlockvToken
File 7 of 7: FeeCollector
12345678910111213141516// SPDX-License-Identifier: GPL-3.0-or-laterpragma solidity ^0.8.17;// Command implementationsimport {Dispatcher} from './base/Dispatcher.sol';import {RewardsCollector} from './base/RewardsCollector.sol';import {RouterParameters, RouterImmutables} from './base/RouterImmutables.sol';import {Commands} from './libraries/Commands.sol';import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';contract UniversalRouter is RouterImmutables, IUniversalRouter, Dispatcher, RewardsCollector {modifier checkDeadline(uint256 deadline) {if (block.timestamp > deadline) revert TransactionDeadlinePassed();_;}constructor(RouterParameters memory params) RouterImmutables(params) {}/// @inheritdoc IUniversalRouterfunction execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
File 2 of 7: WETH9
12345678910111213141516// Copyright (C) 2015, 2016, 2017 Dapphub// This program is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program. If not, see <http://www.gnu.org/licenses/>.pragma solidity ^0.4.18;
File 3 of 7: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 4 of 7: TetherToken
12345678910111213141516pragma solidity ^0.4.17;/*** @title SafeMath* @dev Math operations with safety checks that throw on error*/library SafeMath {function mul(uint256 a, uint256 b) internal pure returns (uint256) {if (a == 0) {return 0;}uint256 c = a * b;assert(c / a == b);return c;}
File 5 of 7: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 6 of 7: BlockvToken
12345678910111213141516pragma solidity ^0.4.13;interface MigrationAgent {function migrateFrom(address _from, uint256 _value);}contract PoolAllocations {// ERC20 basic token contract being heldERC20Basic public token;// allocations mapmapping (address => lockEntry) public allocations;// lock entrystruct lockEntry {
File 7 of 7: FeeCollector
12345678910111213141516// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity ^0.8.0;import {Owned} from "solmate/auth/Owned.sol";import {ERC20} from "solmate/tokens/ERC20.sol";import {SafeTransferLib} from "solmate/utils/SafeTransferLib.sol";import {IFeeCollector} from "./interfaces/IFeeCollector.sol";import {IPermit2} from "./external/IPermit2.sol";/// @notice The collector of protocol fees that will be used to swap and send to a fee recipient address.contract FeeCollector is Owned, IFeeCollector {using SafeTransferLib for ERC20;address public universalRouter;ERC20 public immutable feeToken;IPermit2 public immutable permit2;uint256 public constant MAX_APPROVAL_AMOUNT = type(uint256).max;uint160 public constant MAX_PERMIT2_APPROVAL_AMOUNT = type(uint160).max;uint48 public constant MAX_PERMIT2_DEADLINE = type(uint48).max;