ETH Price: $3,723.17 (-0.09%)

Transaction Decoder

Block:
21942820 at Feb-28-2025 05:41:35 AM +UTC
Transaction Fee:
0.00048565755038235 ETH $1.81
Gas Used:
216,791 Gas / 2.24021085 Gwei

Emitted Events:

58 Matt.Transfer( from=[Sender] 0xc90a076bf297d201c45e91447c75e8bd22436e29, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=12196802860098000 )
59 Matt.Approval( owner=[Sender] 0xc90a076bf297d201c45e91447c75e8bd22436e29, spender=[Receiver] RedSnwapper, value=0 )
60 Matt.Transfer( from=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, to=UniswapV2Pair, value=12196802860097999 )
61 WETH9.Transfer( src=UniswapV2Pair, dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=23678402667845156 )
62 UniswapV2Pair.Sync( reserve0=694509078147852117, reserve1=1328600537522733176 )
63 UniswapV2Pair.Swap( sender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, amount0In=12196802860097999, amount1In=0, amount0Out=0, amount1Out=23678402667845156, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 )
64 WETH9.Withdrawal( src=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=23678402667845156 )
65 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd( 0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd, 0x000000000000000000000000ad27827c312cd5e71311d68e180a9872d42de23d, 0x0000000000000000000000004c917a6f6cebdde6d5ad57c05913e72a15fe2eb3, 0x0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 000000000000000000000000000000000000000000000000002b54ed75df21cf, 0000000000000000000000000000000000000000000000000053b3b471f75bce, 00000000000000000000000000000000000000000000000000541f61bbdd9624, fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc )

Account State Difference:

  Address   Before After State Difference Code
(Lido: Execution Layer Rewards Vault)
330.933750788140866528 Eth330.933925385607372619 Eth0.000174597466506091
0x4C917A6F...A15FE2EB3
0xaE71002b...173E5bDa1
0xC02aaA39...83C756Cc2 2,902,132.265520080142171497 Eth2,902,132.241841677474326341 Eth0.023678402667845156
0xC90A076b...D22436E29
0.039814328402240223 Eth
Nonce: 4
0.062948173493066765 Eth
Nonce: 5
0.023133845090826542
0xca226bd9...a722f8ADa 1.082309456486628371 Eth1.082368356513264635 Eth0.000058900026636264

Execution Trace

RedSnwapper.snwap( tokenIn=0x4C917A6F6CeBDDE6D5AD57C05913e72A15FE2EB3, amountIn=12196802860098000, recipient=0xC90A076bf297D201c45e91447C75e8bD22436E29, tokenOut=0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE, amountOutMin=23501110627869670, executor=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, executorData=0xEE623204000000000000000000000000CA226BD9C754F1283123D32B2A7CF62A722F8ADA00000000000000000000000000000000000000000000000000003591BB2A37E80000000000000000000000004C917A6F6CEBDDE6D5AD57C05913E72A15FE2EB3000000000000000000000000000000000000000000000000002B54ED75DF21D0000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE00000000000000000000000000000000000000000000000000541F61BBDD96280000000000000000000000000000000000000000000000000053B3B471F75BCE000000000000000000000000C90A076BF297D201C45E91447C75E8BD22436E29000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000073014C917A6F6CEBDDE6D5AD57C05913E72A15FE2EB301FFFF00AE71002BDC2F845768AE1E84DDA1C08173E5BDA10185CD07EA01423B1E937929B44E4AD8C40BBB5E71000BB801C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC201FFFF020085CD07EA01423B1E937929B44E4AD8C40BBB5E7100000000000000000000000000 ) => ( amountOut=23619502641208892 )
  • Matt.transferFrom( sender=0xC90A076bf297D201c45e91447C75e8bD22436E29, recipient=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, amount=12196802860098000 ) => ( True )
  • 0xad27827c312cd5e71311d68e180a9872d42de23d.1cff79cd( )
    • 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.ee623204( )
      • Matt.balanceOf( account=0xAD27827C312Cd5E71311d68e180a9872d42dE23D ) => ( 0 )
      • Matt.balanceOf( account=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 ) => ( 12196802860098000 )
      • Matt.transfer( recipient=0xaE71002bdc2F845768AE1E84DdA1c08173E5bDa1, amount=12196802860097999 ) => ( True )
      • UniswapV2Pair.STATICCALL( )
      • Matt.balanceOf( account=0xaE71002bdc2F845768AE1E84DdA1c08173E5bDa1 ) => ( 694509078147852117 )
      • UniswapV2Pair.swap( amount0Out=0, amount1Out=23678402667845156, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, data=0x )
        • WETH9.transfer( dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=23678402667845156 ) => ( True )
        • Matt.balanceOf( account=0xaE71002bdc2F845768AE1E84DdA1c08173E5bDa1 ) => ( 694509078147852117 )
        • WETH9.balanceOf( 0xaE71002bdc2F845768AE1E84DdA1c08173E5bDa1 ) => ( 1328600537522733176 )
        • WETH9.balanceOf( 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 ) => ( 23678402667845157 )
        • WETH9.withdraw( wad=23678402667845156 )
          • ETH 0.023678402667845156 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
          • ETH 0.023678402667845156 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
          • Matt.balanceOf( account=0xAD27827C312Cd5E71311d68e180a9872d42dE23D ) => ( 0 )
          • ETH 0.000058900026636264 TokenChomper.CALL( )
          • ETH 0.023619502641208892 0xc90a076bf297d201c45e91447c75e8bd22436e29.CALL( )
            File 1 of 5: RedSnwapper
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // SPDX-License-Identifier: MIT
            // OpenZeppelin Contracts v4.4.1 (token/ERC20/extensions/draft-IERC20Permit.sol)
            pragma solidity ^0.8.0;
            /**
            * @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in
            * https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].
            *
            * Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by
            * presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't
            * need to send a transaction, and thus is not required to hold Ether at all.
            */
            interface IERC20Permit {
            /**
            * @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,
            * given ``owner``'s signed approval.
            *
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 2 of 5: Matt
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            /**
            https://twitter.com/Matt_Furie/status/1700400724306534724
            https://t.me/redhotcock_PORTAL
            **/
            // SPDX-License-Identifier: MIT
            pragma solidity 0.8.20;
            abstract contract Context {
            function _msgSender() internal view virtual returns (address) {
            return msg.sender;
            }
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 3 of 5: UniswapV2Pair
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // File: contracts/interfaces/IUniswapV2Pair.sol
            pragma solidity >=0.5.0;
            interface IUniswapV2Pair {
            event Approval(address indexed owner, address indexed spender, uint value);
            event Transfer(address indexed from, address indexed to, uint value);
            function name() external pure returns (string memory);
            function symbol() external pure returns (string memory);
            function decimals() external pure returns (uint8);
            function totalSupply() external view returns (uint);
            function balanceOf(address owner) external view returns (uint);
            function allowance(address owner, address spender) external view returns (uint);
            function approve(address spender, uint value) external returns (bool);
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 4 of 5: 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 5 of 5: TokenChomper
            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.0;
            import "/interfaces/IRouteProcessor.sol";
            import "interfaces/IERC20.sol";
            import "./Auth.sol";
            /// @title TokenChomper for selling accumulated tokens for weth or other base assets
            /// @notice This contract will be used for fee collection and breakdown
            /// @dev Uses Auth contract for 2-step owner process and trust operators to guard functions
            contract TokenChomper is Auth {
            address public immutable weth;
            IRouteProcessor public routeProcessor;
            bytes4 private constant TRANSFER_SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));
            error TransferFailed();
            constructor(
            address _operator,
            address _routeProcessor,
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX