ETH Price: $2,025.43 (-1.88%)

Transaction Decoder

Block:
21676704 at Jan-22-2025 01:20:35 AM +UTC
Transaction Fee:
0.001633444900850966 ETH $3.31
Gas Used:
163,058 Gas / 10.017569827 Gwei

Emitted Events:

404 WETH9.Deposit( dst=[Receiver] UniversalRouter, wad=30000000000000000 )
405 Token.Transfer( from=0x3CD80800A1403A96C4c8AA28CC291CB8cd6442b3, to=[Receiver] UniversalRouter, value=88430277418904251449 )
406 WETH9.Transfer( src=[Receiver] UniversalRouter, dst=0x3CD80800A1403A96C4c8AA28CC291CB8cd6442b3, wad=30000000000000000 )
407 0x3cd80800a1403a96c4c8aa28cc291cb8cd6442b3.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad, 0x0000000000000000000000003fc91a3afd70395cd496c647d5a6cc9d4b2b7fad, 000000000000000000000000000000000000000000000000006a94d74f430000, fffffffffffffffffffffffffffffffffffffffffffffffb34c88b3610f713c7, 00000000000000000000000000000000000000365c18ae58c802a88f963b219c, 0000000000000000000000000000000000000000000000a6bab296e6ba3c3d8c, 000000000000000000000000000000000000000000000000000000000001382c )
408 Token.Transfer( from=[Receiver] UniversalRouter, to=FeeCollector, value=221075693547260628 )
409 Token.Transfer( from=[Receiver] UniversalRouter, to=[Sender] 0x13a9fd0a65538811b14d215ddb38032426763b74, value=88209201725356990821 )

Account State Difference:

  Address   Before After State Difference Code
0x13A9Fd0A...426763B74
0.062385860795162723 Eth
Nonce: 17
0.030752415894311757 Eth
Nonce: 18
0.031633444900850966
0x3CD80800...8cd6442b3
(Uniswap V3: SUPER 2)
(Titan Builder)
10.171878614401549669 Eth10.171879967782949669 Eth0.0000013533814
0xC02aaA39...83C756Cc2 3,036,518.647427742969824219 Eth3,036,518.677427742969824219 Eth0.03
0xe53EC727...31AB40A55

Execution Trace

ETH 0.03 UniversalRouter.execute( commands=0x0B000604, inputs=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAapTXT0MAAA==, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAapTXT0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArwCqqObIj/o0KDlxPJ+rZCDx1bMIAC7jlPscn29654tVFbDvkDP8DGrQKVQAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAA5T7HJ9veueLVRWw75Az/Axq0ClUAAAAAAAAAAAAAAAAAAAD+4ToQOhDVk7muBrPgXy5+HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ, AAAAAAAAAAAAAAAA5T7HJ9veueLVRWw75Az/Axq0ClUAAAAAAAAAAAAAAAATqf0KZVOIEbFNIV3bOAMkJnY7dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMIO7EaELSeX], deadline=1737510624 )
  • ETH 0.03 WETH9.CALL( )
  • Uniswap V3: SUPER 2.128acb08( )
    • Token.transfer( recipient=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, amount=88430277418904251449 ) => ( True )
    • WETH9.balanceOf( 0x3CD80800A1403A96C4c8AA28CC291CB8cd6442b3 ) => ( 10538921700729477693 )
    • UniversalRouter.uniswapV3SwapCallback( amount0Delta=30000000000000000, amount1Delta=-88430277418904251449, data=0x00000000000000000000000000000000000000000000000000000000000000400000000000000000000000003FC91A3AFD70395CD496C647D5A6CC9D4B2B7FAD000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000BB8E53EC727DBDEB9E2D5456C3BE40CFF031AB40A55000000000000000000000000000000000000000000 )
      • WETH9.transfer( dst=0x3CD80800A1403A96C4c8AA28CC291CB8cd6442b3, wad=30000000000000000 ) => ( True )
      • WETH9.balanceOf( 0x3CD80800A1403A96C4c8AA28CC291CB8cd6442b3 ) => ( 10568921700729477693 )
      • Token.balanceOf( account=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD ) => ( 88430277418904251449 )
      • Token.transfer( recipient=0x000000fee13a103A10D593b9AE06b3e05F2E7E1c, amount=221075693547260628 ) => ( True )
      • Token.balanceOf( account=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD ) => ( 88209201725356990821 )
      • Token.transfer( recipient=0x13A9Fd0A65538811B14d215ddb38032426763B74, amount=88209201725356990821 ) => ( True )
        File 1 of 4: UniversalRouter
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: GPL-3.0-or-later
        pragma solidity ^0.8.17;
        // Command implementations
        import {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 IUniversalRouter
        function execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 2 of 4: WETH9
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // 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;
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 3 of 4: Token
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: GPL-3.0
        pragma solidity 0.6.12;
        import "@openzeppelin/contracts/token/ERC20/ERC20Capped.sol";
        import "@openzeppelin/contracts/access/Ownable.sol";
        /**
        @title A basic ERC-20 token with voting functionality.
        @author Tim Clancy
        This contract is used when deploying SuperFarm ERC-20 tokens.
        This token is created with a fixed, immutable cap and includes voting rights.
        Voting functionality is copied and modified from Sushi, and in turn from YAM:
        https://github.com/yam-finance/yam-protocol/blob/master/contracts/token/YAMGovernanceStorage.sol
        https://github.com/yam-finance/yam-protocol/blob/master/contracts/token/YAMGovernance.sol
        Which is in turn copied and modified from COMPOUND:
        https://github.com/compound-finance/compound-protocol/blob/master/contracts/Governance/Comp.sol
        */
        contract Token is ERC20Capped, Ownable {
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 4 of 4: FeeCollector
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: GPL-2.0-or-later
        pragma 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;
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX