ETH Price: $3,811.07 (+0.68%)

Transaction Decoder

Block:
21972425 at Mar-04-2025 08:47:23 AM +UTC
Transaction Fee:
0.000275449255663296 ETH $1.05
Gas Used:
216,346 Gas / 1.273188576 Gwei

Emitted Events:

46 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000fc854ddb38b0b358b3f8d2ff277dfcf1335a471d, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 00000000000000000000000000000000000000000000000000000000013fc562 )
47 FiatTokenProxy.0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925( 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 00000000000000000000000000000000000000000000000000000000013fc562 )
48 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 00000000000000000000000000000000000000000000000000000000013fc562 )
49 WETH9.Transfer( src=0xE0554a476A092703abdB3Ef35c80e0D76d32939F, dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=10035997483772737 )
50 FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 0x000000000000000000000000e0554a476a092703abdb3ef35c80e0d76d32939f, 00000000000000000000000000000000000000000000000000000000013fc562 )
51 0xe0554a476a092703abdb3ef35c80e0d76d32939f.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 0x00000000000000000000000085cd07ea01423b1e937929b44e4ad8c40bbb5e71, 00000000000000000000000000000000000000000000000000000000013fc562, ffffffffffffffffffffffffffffffffffffffffffffffffffdc58503f0354bf, 000000000000000000000000000000000000557cc1f0e71f1e6bdf782dd5836a, 00000000000000000000000000000000000000000000000001e4913f55dac791, 0000000000000000000000000000000000000000000000000000000000030cc8 )
52 WETH9.Withdrawal( src=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=10035997483772737 )
53 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd( 0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48, 0x0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 00000000000000000000000000000000000000000000000000000000013fc562, 00000000000000000000000000000000000000000000000000235c302a6723e1, 0000000000000000000000000000000000000000000000000023a7afc0fcab41, fffffffffffffffffffffffffffffffffffffffffffffffffffff00fe8e73c05 )

Account State Difference:

  Address   Before After State Difference Code
(MEV Builder: 0x98ed...5c1)
1.005638024434257441 Eth1.005746197434257441 Eth0.000108173
0xA0b86991...E3606eB48
0xC02aaA39...83C756Cc2 2,866,987.489513771795353747 Eth2,866,987.47947777431158101 Eth0.010035997483772737
0xE0554a47...76d32939F
(Uniswap V3: USDC 4)
0xFc854ddb...1335A471D
0.001420359465275354 Eth
Nonce: 8
0.011180907693384795 Eth
Nonce: 9
0.009760548228109441

Execution Trace

ApprovalProxy.transferAndMulticall( tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], amounts=[20956514], targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWI=, , 3ZxflgAAAAAAAAAAAAAAAKC4aZHGIYs2wdGdSi6esM42ButIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWIAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjt5/YFW88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNcMCpnI+EAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQKguGmRxiGLNsHRnUounrDONgbrSAH//wHgVUpHagknA6vbPvNcgODXbTKTnwGFzQfqAUI7HpN5KbROStjEC7tecQABwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0xFc854ddb38b0b358b3F8D2FF277dfcF1335A471D ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000023A7AFC0FCAB41 )
  • FiatTokenProxy.23b872dd( )
    • FiatTokenV2_2.transferFrom( from=0xFc854ddb38b0b358b3F8D2FF277dfcF1335A471D, to=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, value=20956514 ) => ( True )
    • ERC20Router.delegatecallMulticall( targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWI=, , 3ZxflgAAAAAAAAAAAAAAAKC4aZHGIYs2wdGdSi6esM42ButIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWIAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjt5/YFW88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNcMCpnI+EAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQKguGmRxiGLNsHRnUounrDONgbrSAH//wHgVUpHagknA6vbPvNcgODXbTKTnwGFzQfqAUI7HpN5KbROStjEC7tecQABwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0xFc854ddb38b0b358b3F8D2FF277dfcF1335A471D ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000023A7AFC0FCAB41 )
      • Multicaller.aggregate( targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], data=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWI=, , 3ZxflgAAAAAAAAAAAAAAAKC4aZHGIYs2wdGdSi6esM42ButIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE/xWIAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjt5/YFW88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNcMCpnI+EAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcQKguGmRxiGLNsHRnUounrDONgbrSAH//wHgVUpHagknA6vbPvNcgODXbTKTnwGFzQfqAUI7HpN5KbROStjEC7tecQABwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAA], values=[0, 0, 0], refundTo=0xFc854ddb38b0b358b3F8D2FF277dfcF1335A471D ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, , AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOnr8D8q0E=] )
        • FiatTokenProxy.095ea7b3( )
          • FiatTokenV2_2.approve( spender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=20956514 ) => ( True )
          • Relay: Solver.CALL( )
          • 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.dd9c5f96( )
            • FiatTokenProxy.70a08231( )
              • FiatTokenV2_2.balanceOf( account=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 20956514 )
              • FiatTokenProxy.23b872dd( )
                • FiatTokenV2_2.transferFrom( from=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=20956514 ) => ( True )
                • Uniswap V3: USDC 4.128acb08( )
                  • WETH9.transfer( dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=10035997483772737 ) => ( True )
                  • FiatTokenProxy.70a08231( )
                    • FiatTokenV2_2.balanceOf( account=0xE0554a476A092703abdB3Ef35c80e0D76d32939F ) => ( 271570206736 )
                    • 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.fa461e33( )
                      • FiatTokenProxy.a9059cbb( )
                      • FiatTokenProxy.70a08231( )
                        • FiatTokenV2_2.balanceOf( account=0xE0554a476A092703abdB3Ef35c80e0D76d32939F ) => ( 271591163250 )
                        • WETH9.balanceOf( 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 ) => ( 10035997483772738 )
                        • WETH9.withdraw( wad=10035997483772737 )
                          • ETH 0.010035997483772737 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
                          • ETH 0.010035997483772737 0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
                          • FiatTokenProxy.70a08231( )
                            • FiatTokenV2_2.balanceOf( account=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 0 )
                            • ETH 0.010035997483772737 ERC20Router.CALL( )
                            • ETH 0.010035997483772737 0xfc854ddb38b0b358b3f8d2ff277dfcf1335a471d.CALL( )
                              transferAndMulticall[ApprovalProxy (ln:37)]
                              File 1 of 6: 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 6: FiatTokenProxy
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              pragma solidity ^0.4.24;
                              // File: zos-lib/contracts/upgradeability/Proxy.sol
                              /**
                              * @title Proxy
                              * @dev Implements delegation of calls to other contracts, with proper
                              * forwarding of return values and bubbling of failures.
                              * It defines a fallback function that delegates all calls to the address
                              * returned by the abstract _implementation() internal function.
                              */
                              contract Proxy {
                              /**
                              * @dev Fallback function.
                              * Implemented entirely in `_fallback`.
                              */
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 3 of 6: 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 4 of 6: FiatTokenV2_2
                              1
                              2
                              3
                              4
                              5
                              6
                              7
                              8
                              9
                              10
                              11
                              12
                              13
                              14
                              15
                              16
                              /**
                              * SPDX-License-Identifier: Apache-2.0
                              *
                              * Copyright (c) 2023, Circle Internet Financial, LLC.
                              *
                              * Licensed under the Apache License, Version 2.0 (the "License");
                              * you may not use this file except in compliance with the License.
                              * You may obtain a copy of the License at
                              *
                              * http://www.apache.org/licenses/LICENSE-2.0
                              *
                              * Unless required by applicable law or agreed to in writing, software
                              * distributed under the License is distributed on an "AS IS" BASIS,
                              * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
                              * See the License for the specific language governing permissions and
                              * limitations under the License.
                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                              File 5 of 6: 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 6 of 6: 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