ETH Price: $2,996.05 (+1.85%)

Transaction Decoder

Block:
22481446 at May-14-2025 12:36:11 PM +UTC
Transaction Fee:
0.0023099950341627 ETH $6.92
Gas Used:
241,225 Gas / 9.576101292 Gwei

Emitted Events:

373 WETH9.Deposit( dst=MainnetSettler, wad=318438824947521 )
374 WETH9.Transfer( src=MainnetSettler, dst=UniswapV2Pair, wad=318438824947521 )
375 TmcBx.Transfer( from=UniswapV2Pair, to=Spender, value=307714093472465626475 )
376 UniswapV2Pair.Sync( reserve0=9692285906527534373525, reserve1=10318438824947521 )
377 UniswapV2Pair.Swap( sender=MainnetSettler, amount0In=0, amount1In=318438824947521, amount0Out=307714093472465626475, amount1Out=0, to=Spender )
378 TmcBx.Transfer( from=Spender, to=[Sender] 0xebbf052a186c6c6272f23391760c34439251f138, value=307714093472465626475 )
379 MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0x83203d0886d1c2c42122151c4282225c18a1e1561f04ae69d57528da4bb99db6, 0x000000000000000000000000ebbf052a186c6c6272f23391760c34439251f138 )

Account State Difference:

  Address   Before After State Difference Code
0x17150840...998024a50
(Titan Builder)
7.122484022138454212 Eth7.122725247138695437 Eth0.000241225000241225
0x97AF529B...2E22502F6
0xC02aaA39...83C756Cc2 2,740,767.551705086485720914 Eth2,740,767.552023525310668435 Eth0.000318438824947521
0xe3478b0B...948Be1964 376.932300499240039027 Eth376.932303310175442095 Eth0.000002810935403068
0xEbbF052A...39251f138
0.004347241357741631 Eth
Nonce: 63
0.001715996563228342 Eth
Nonce: 64
0.002631244794513289

Execution Trace

ETH 0.000321249760350589 MetaSwap.swap( aggregatorId=0xV2, tokenFrom=0x0000000000000000000000000000000000000000, amount=321249760350589, data=0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017150840C6002D60207DB95AB093BD6998024A500000000000000000000000000000000000000000000000000001219E510B2F4100000000000000000000000000000000000000000000001058FBAAEBAB81EC5900000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000028E78CE623C000000000000000000000000E3478B0BB1A5084567C319096437924948BE1964000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004242213BC0B0000000000000000000000005418226AF9C8D5D287A78FBBBCD337B86EC07D6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001219E510B2F410000000000000000000000005418226AF9C8D5D287A78FBBBCD337B86EC07D6100000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000003441FFF991F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A04177D1239557EDF8682126190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000010438C9C147000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000024D0E30DB00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C4103B48BE00000000000000000000000074DE5D4FCBF63E00296FD95D33236B9794016631000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000271000000000000000000000000097AF529B8759059709DC10471F638EA2E22502F60000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000000000000000000000000001083AFDE4C1D956FD8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
  • ETH 0.000321249760350589 Spender.swap( adapter=0x3261d7831DCd2CA040696A095A94b68F2cD204B8, data=0x92F5F037000000000000000000000000EBBF052A186C6C6272F23391760C34439251F138000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017150840C6002D60207DB95AB093BD6998024A500000000000000000000000000000000000000000000000000001219E510B2F4100000000000000000000000000000000000000000000001058FBAAEBAB81EC5900000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000028E78CE623C000000000000000000000000E3478B0BB1A5084567C319096437924948BE1964000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004242213BC0B0000000000000000000000005418226AF9C8D5D287A78FBBBCD337B86EC07D6100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001219E510B2F410000000000000000000000005418226AF9C8D5D287A78FBBBCD337B86EC07D6100000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000003441FFF991F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A04177D1239557EDF8682126190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000010438C9C147000000000000000000000000EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000024D0E30DB00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000C4103B48BE00000000000000000000000074DE5D4FCBF63E00296FD95D33236B9794016631000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000271000000000000000000000000097AF529B8759059709DC10471F638EA2E22502F60000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000000000000000000000000001083AFDE4C1D956FD8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
    • ETH 0.000321249760350589 0x3261d7831dcd2ca040696a095a94b68f2cd204b8.92f5f037( )
      • ETH 0.000318438824947521 AllowanceHolder.2213bc0b( )
        • MainnetSettler.balanceOf( 0x000000000000000000000000000000000000dEaD )
        • ETH 0.000318438824947521 MainnetSettler.execute( slippage=[{name:recipient, type:address, order:1, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:buyToken, type:address, order:2, indexed:false, value:0x0000000000000000000000000000000000000000, valueString:0x0000000000000000000000000000000000000000}, {name:minAmountOut, type:uint256, order:3, indexed:false, value:0, valueString:0}], actions=[OMnBRwAAAAAAAAAAAAAAAO7u7u7u7u7u7u7u7u7u7u7u7u7uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJxAAAAAAAAAAAAAAAADAKqo5siP+jQoOXE8n6tkIPHVswgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJNDjDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=, EDtIvgAAAAAAAAAAAAAAAHTeXU/L9j4AKW/ZXTMja5eUAWYxAAAAAAAAAAAAAAAAwCqqObIj/o0KDlxPJ+rZCDx1bMIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnEAAAAAAAAAAAAAAAAJevUpuHWQWXCdwQRx9jjqLiJQL2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCDr95MHZVv2A==], 4177D1239557EDF8682126190000000000000000000000000000000000000000 ) => ( True )
          • ETH 0.000318438824947521 WETH9.deposit( )
          • WETH9.balanceOf( 0x5418226aF9C8d5D287A78FbBbCD337b86ec07D61 ) => ( 318438824947521 )
          • WETH9.transfer( dst=0x97AF529B8759059709dC10471f638ea2E22502F6, wad=318438824947521 ) => ( True )
          • UniswapV2Pair.STATICCALL( )
          • UniswapV2Pair.swap( amount0Out=307714093472465626475, amount1Out=0, to=0x74de5d4FCbf63E00296fd95d33236B9794016631, data=0x )
            • TmcBx.transfer( recipient=0x74de5d4FCbf63E00296fd95d33236B9794016631, amount=307714093472465626475 ) => ( True )
            • TmcBx.balanceOf( account=0x97AF529B8759059709dC10471f638ea2E22502F6 ) => ( 9692285906527534373525 )
            • WETH9.balanceOf( 0x97AF529B8759059709dC10471f638ea2E22502F6 ) => ( 10318438824947521 )
            • ETH 0.000002810935403068 0xe3478b0bb1a5084567c319096437924948be1964.CALL( )
            • TmcBx.balanceOf( account=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 307714093472465626475 )
            • TmcBx.transfer( recipient=0xEbbF052A186C6c6272F23391760C34439251f138, amount=307714093472465626475 ) => ( True )
              File 1 of 7: MetaSwap
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              pragma solidity ^0.6.0;
              import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
              import "@openzeppelin/contracts/token/ERC20/SafeERC20.sol";
              import "@openzeppelin/contracts/utils/Address.sol";
              import "../Constants.sol";
              contract CommonAdapter {
              using SafeERC20 for IERC20;
              using Address for address;
              using Address for address payable;
              /**
              * @dev Performs a swap
              * @param recipient The original msg.sender performing the swap
              * @param aggregator Address of the aggregator's contract
              * @param spender Address to which tokens will be approved
              * @param method Selector of the function to be called in the aggregator's contract
              * @param tokenFrom Token to be swapped
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 2 of 7: 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 7: MainnetSettler
              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 >=0.6.2 >=0.8.25 ^0.8.0 ^0.8.25;
              // lib/forge-std/src/interfaces/IERC20.sol
              /// @dev Interface of the ERC20 standard as defined in the EIP.
              /// @dev This includes the optional name, symbol, and decimals metadata.
              interface IERC20 {
              /// @dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`).
              event Transfer(address indexed from, address indexed to, uint256 value);
              /// @dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`
              /// is the new allowance.
              event Approval(address indexed owner, address indexed spender, uint256 value);
              /// @notice Returns the amount of tokens in existence.
              function totalSupply() external view returns (uint256);
              /// @notice Returns the amount of tokens owned by `account`.
              function balanceOf(address account) external view returns (uint256);
              /// @notice Moves `amount` tokens from the caller's account to `to`.
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 4 of 7: 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 5 of 7: Spender
              1
              {"Constants.84ef19f8.sol":{"content":"// SPDX-License-Identifier: MIT\r\n\r\npragma solidity ^0.6.0;\r\n\r\nlibrary Constants {\r\n address internal
                  constant ETH = 0x0000000000000000000000000000000000000000;\r\n}\r\n"},"Spender.3372a096.sol":{"content":"// SPDX-License-Identifier:
                  MIT\r\n\r\npragma solidity ^0.6.0;\r\n\r\nimport \"./Constants.84ef19f8.sol\";\r\n\r\ncontract Spender {\r\n address public immutable metaswap
                  ;\r\n\r\n constructor() public {\r\n metaswap = msg.sender;\r\n }\r\n\r\n /// @dev Receives ether from swaps\r\n fallback()
                  external payable {}\r\n\r\n function swap(address adapter, bytes calldata data) external payable {\r\n require(msg.sender == metaswap,
                  \"FORBIDDEN\");\r\n require(adapter != address(0), \"ADAPTER_NOT_PROVIDED\");\r\n _delegate(adapter, data,
                  \"ADAPTER_DELEGATECALL_FAILED\");\r\n }\r\n\r\n /**\r\n * @dev Performs a delegatecall and bubbles up the errors, adapted from\r\n *
                  https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/Address.sol\r\n * @param target Address of the contract to
                  delegatecall\r\n * @param data Data passed in the delegatecall\r\n * @param errorMessage Fallback revert reason\r\n */\r\n function
                  _delegate(\r\n address target,\r\n bytes memory data,\r\n string memory errorMessage\r\n ) private returns (bytes memory)
                  {\r\n // solhint-disable-next-line avoid-low-level-calls\r\n (bool success, bytes memory returndata) = target.delegatecall(data);\r\n
                   if (success) {\r\n return returndata;\r\n } else {\r\n // Look for revert reason and bubble it up if
                  present\r\n if (returndata.length \u003e 0) {\r\n // The easiest way to bubble the revert reason is using memory via
                  assembly\r\n\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly {\r\n let
                  returndata_size := mload(returndata)\r\n revert(add(32, returndata), returndata_size)\r\n }\r\n } else
                  {\r\n revert(errorMessage);\r\n }\r\n }\r\n }\r\n}\r\n"}}
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 6 of 7: TmcBx
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity 0.8.26;
              interface IERC20 {
              function totalSupply() external view returns (uint256);
              function balanceOf(address account) external view returns (uint256);
              function transfer(address recipient, uint256 amount) external returns (bool);
              function allowance(address owner, address spender) external view returns (uint256);
              function approve(address spender, uint256 amount) external returns (bool);
              function transferFrom(
              address sender,
              address recipient,
              uint256 amount
              ) external returns (bool);
              event Transfer(address indexed from, address indexed to, uint256 value);
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 7 of 7: AllowanceHolder
              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 {AllowanceHolderBase} from "./AllowanceHolderBase.sol";
              import {TransientStorage} from "./TransientStorage.sol";
              /// @custom:security-contact security@0x.org
              contract AllowanceHolder is TransientStorage, AllowanceHolderBase {
              constructor() {
              require(address(this) == 0x0000000000001fF3684f28c67538d4D072C22734 || block.chainid == 31337);
              }
              /// @inheritdoc AllowanceHolderBase
              function exec(address operator, address token, uint256 amount, address payable target, bytes calldata data)
              internal
              override
              returns (bytes memory)
              {
              (bytes memory result, address sender, TSlot allowance) = _exec(operator, token, amount, target, data);
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX