ETH Price: $3,768.40 (+5.26%)

Transaction Decoder

Block:
21973239 at Mar-04-2025 11:30:47 AM +UTC
Transaction Fee:
0.000221902096071338 ETH $0.84
Gas Used:
203,722 Gas / 1.089239729 Gwei

Emitted Events:

221 TetherToken.Transfer( from=[Sender] 0x6dc4c65095113d50f4358070e3065ded6680cf58, to=ERC20Router, value=2333923 )
222 TetherToken.Approval( owner=ERC20Router, spender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=2333923 )
223 TetherToken.Transfer( from=ERC20Router, to=0xAe933d0a8D630e30A2e035284e35F232F4590e33, value=2333923 )
224 WETH9.Transfer( src=0xAe933d0a8D630e30A2e035284e35F232F4590e33, dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=1107456856936323 )
225 0xae933d0a8d630e30a2e035284e35f232f4590e33.0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1( 0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1, 0000000000000000000000000000000000000000000000000377e7cd61f1de8e, 000000000000000000000000000000000000000000000000000000001f705c45 )
226 0xae933d0a8d630e30a2e035284e35f232f4590e33.0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822( 0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000239ce3, 0000000000000000000000000000000000000000000000000003ef39e48fcf83, 0000000000000000000000000000000000000000000000000000000000000000 )
227 WETH9.Withdrawal( src=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=1107456856936323 )
228 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd( 0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 0x0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0000000000000000000000000000000000000000000000000000000000239ce3, 0000000000000000000000000000000000000000000000000003e52764d60d70, 0000000000000000000000000000000000000000000000000003ef39e48fcf83, ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff )

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
7.169622858387432549 Eth7.169633044487432549 Eth0.0000101861
0x6dc4C650...d6680Cf58
0.000399899072684288 Eth
Nonce: 307
0.001285453833549273 Eth
Nonce: 308
0.000885554760864985
0xAe933d0a...2F4590e33
0xC02aaA39...83C756Cc2 2,859,916.913470851238224428 Eth2,859,916.912363394381288105 Eth0.001107456856936323
0xdAC17F95...13D831ec7

Execution Trace

ApprovalProxy.transferAndMulticall( tokens=[0xdAC17F958D2ee523a2206206994597C13D831ec7], amounts=[2333923], targets=[0xdAC17F958D2ee523a2206206994597C13D831ec7, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOM=, , 3ZxflgAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOMAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7znkj8+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPlJ2TWDXAAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwLawX+VjS7lI6IgYgaZRZfBPYMexwH//wCukz0KjWMOMKLgNShONfIy9FkOMwCFzQfqAUI7HpN5KbROStjEC7tecQALuAHAKqo5siP+jQoOXE8n6tkIPHVswgH//wIAhc0H6gFCOx6TeSm0TkrYxAu7XnEAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0x6dc4C65095113d50f4358070e3065dEd6680Cf58 ) => ( 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000003EF39E48FCF83 )
  • TetherToken.transferFrom( _from=0x6dc4C65095113d50f4358070e3065dEd6680Cf58, _to=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, _value=2333923 )
  • ERC20Router.delegatecallMulticall( targets=[0xdAC17F958D2ee523a2206206994597C13D831ec7, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOM=, , 3ZxflgAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOMAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7znkj8+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPlJ2TWDXAAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwLawX+VjS7lI6IgYgaZRZfBPYMexwH//wCukz0KjWMOMKLgNShONfIy9FkOMwCFzQfqAUI7HpN5KbROStjEC7tecQALuAHAKqo5siP+jQoOXE8n6tkIPHVswgH//wIAhc0H6gFCOx6TeSm0TkrYxAu7XnEAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0x6dc4C65095113d50f4358070e3065dEd6680Cf58 ) => ( 0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000003EF39E48FCF83 )
    • Multicaller.aggregate( targets=[0xdAC17F958D2ee523a2206206994597C13D831ec7, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], data=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOM=, , 3ZxflgAAAAAAAAAAAAAAANrBf5WNLuUjoiBiBplFl8E9gx7HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjnOMAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7znkj8+EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPlJ2TWDXAAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcwLawX+VjS7lI6IgYgaZRZfBPYMexwH//wCukz0KjWMOMKLgNShONfIy9FkOMwCFzQfqAUI7HpN5KbROStjEC7tecQALuAHAKqo5siP+jQoOXE8n6tkIPHVswgH//wIAhc0H6gFCOx6TeSm0TkrYxAu7XnEAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0x6dc4C65095113d50f4358070e3065dEd6680Cf58 ) => ( [, , AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPvOeSPz4M=] )
      • TetherToken.approve( _spender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, _value=2333923 )
      • Relay: Solver.CALL( )
      • 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.dd9c5f96( )
        • TetherToken.balanceOf( who=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 2333923 )
        • TetherToken.transferFrom( _from=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, _to=0xAe933d0a8D630e30A2e035284e35F232F4590e33, _value=2333923 )
        • 0xae933d0a8d630e30a2e035284e35f232f4590e33.STATICCALL( )
        • TetherToken.balanceOf( who=0xAe933d0a8D630e30A2e035284e35F232F4590e33 ) => ( 527457349 )
        • 0xae933d0a8d630e30a2e035284e35f232f4590e33.022c0d9f( )
          • WETH9.transfer( dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=1107456856936323 ) => ( True )
          • WETH9.balanceOf( 0xAe933d0a8D630e30A2e035284e35F232F4590e33 ) => ( 249923173639904910 )
          • TetherToken.balanceOf( who=0xAe933d0a8D630e30A2e035284e35F232F4590e33 ) => ( 527457349 )
          • WETH9.balanceOf( 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 ) => ( 1107456856936324 )
          • WETH9.withdraw( wad=1107456856936323 )
            • ETH 0.001107456856936323 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
            • ETH 0.001107456856936323 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
            • TetherToken.balanceOf( who=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 0 )
            • ETH 0.001107456856936323 ERC20Router.CALL( )
            • ETH 0.001107456856936323 0x6dc4c65095113d50f4358070e3065ded6680cf58.CALL( )
              transferAndMulticall[ApprovalProxy (ln:37)]
              File 1 of 5: ApprovalProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity ^0.8.23;
              import {Ownable} from "solady/src/auth/Ownable.sol";
              import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
              import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
              import {IERC20Router} from "../src/types/interfaces/IERC20Router.sol";
              contract ApprovalProxy is Ownable {
              using SafeERC20 for IERC20;
              error ArrayLengthsMismatch();
              error ERC20TransferFromFailed();
              error NativeTransferFailed();
              event RouterUpdated(address newRouter);
              address public router;
              receive() external payable {}
              constructor(address _owner, address _router) {
              _initializeOwner(_owner);
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 2 of 5: ERC20Router
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity ^0.8.25;
              import {Ownable} from "solady/src/auth/Ownable.sol";
              import {Tstorish} from "tstorish/src/Tstorish.sol";
              import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
              import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";
              import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
              import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
              import {IAllowanceTransfer} from "permit2-relay/src/interfaces/IAllowanceTransfer.sol";
              import {ISignatureTransfer} from "permit2-relay/src/interfaces/ISignatureTransfer.sol";
              import {IPermit2} from "permit2-relay/src/interfaces/IPermit2.sol";
              import {RelayerWitness} from "./types/lib/RelayStructs.sol";
              import {IMulticaller} from "./types/interfaces/IMulticaller.sol";
              contract ERC20Router is Ownable, Tstorish {
              using SafeERC20 for IERC20;
              // --- Errors --- //
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 3 of 5: TetherToken
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              pragma 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;
              }
              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: Multicaller
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity ^0.8.4;
              /**
              * @title Multicaller
              * @author vectorized.eth
              * @notice Contract that allows for efficient aggregation
              * of multiple calls in a single transaction.
              */
              contract Multicaller {
              // =============================================================
              // ERRORS
              // =============================================================
              /**
              * @dev The lengths of the input arrays are not the same.
              */
              error ArrayLengthsMismatch();
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX