ETH Price: $3,655.62 (+3.43%)

Transaction Decoder

Block:
16916917 at Mar-27-2023 06:24:35 AM +UTC
Transaction Fee:
0.003341139577154836 ETH $12.21
Gas Used:
202,012 Gas / 16.539312403 Gwei

Emitted Events:

161 TetherToken.Transfer( from=[Sender] 0xb3e071b60ae6666faca529541e43e833708f0805, to=Spender, value=6860410081 )
162 TetherToken.Transfer( from=Spender, to=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, value=6860410081 )
163 WETH9.Transfer( src=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, dst=Spender, wad=3913268713689632454 )
164 ZeroEx.0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32( 0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32, cfc0bf8f469680f5a3bf2b4cf30ce24a4595f34875ab2d2bb424860803891e5a, 000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c, 00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2, 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 0000000000000000000000000000000000000000000000000000000198e98ce1, 000000000000000000000000000000000000000000000000364eb929661ecec6, 0000000000000000000000000000000000000000000000000000000000000000 )
165 WETH9.Withdrawal( src=Spender, wad=31814874642296712 )
166 Proxy.0x3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d( 0x3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d, 0x00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 00000000000000000000000000000000000000000000000000710775bda0af88 )
167 WETH9.Withdrawal( src=Spender, wad=3881453839047335742 )
168 MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0x62db2e87ad4360c521a990935f97f7c44833c4f99a8f1c09129331715b07f525, 0x000000000000000000000000b3e071b60ae6666faca529541e43e833708f0805 )

Account State Difference:

  Address   Before After State Difference Code
0xb3E071b6...3708F0805
0.085046869460316533 Eth
Nonce: 93
3.963159568930497439 Eth
Nonce: 94
3.878112699470180906
0xC02aaA39...83C756Cc2 3,761,749.875514483043822726 Eth3,761,745.962245769354190272 Eth3.913268713689632454
0xdAC17F95...13D831ec7
(Flashbots: Builder)
1.210534446058210865 Eth1.210554647258210865 Eth0.0000202012
0xDef1C0de...027b25EfF
(0x: Exchange Proxy)
0xF326e4dE...3c79f1915
(MetaMask: DS Proxy)
30,817.522274754742851182 Eth30,817.554089629385147894 Eth0.031814874642296712

Execution Trace

MetaSwap.swap( aggregatorId=pmmFeeDynamicv4, tokenFrom=0xdAC17F958D2ee523a2206206994597C13D831ec7, amount=6860410081, data=0x000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198E98CE1000000000000000000000000000000000000000000000000344000D9C9D67F96000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000710775BDA0AF88000000000000000000000000F326E4DE8F66A0BDC0970B79E0924E33C79F1915000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000000000364EB929661ECEC60000000000000000000000000000000000000000000000000000000198E98CE1000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B9794016631000000000000000000000000B3E071B60AE6666FACA529541E43E833708F08050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006421372201FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BA3F4096421368C000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001B1E6E1E07900EF024D7795F4E8D9A84B7ED00868A1170510FE1E3A52309325D6B7C6EE7BDC0171C466DE04E1D9CBA26E15A3C04E0771808BF13F733D84D00B9E30000000000000000000000000000000000000000000000000000000198E98CE1 )
  • TetherToken.transferFrom( _from=0xb3E071b60AE6666fAcA529541e43e833708F0805, _to=0x74de5d4FCbf63E00296fd95d33236B9794016631, _value=6860410081 )
  • Spender.swap( adapter=0x7bBa8Bd42A19DA78326bE908E2cd52604399a748, data=0x92F5F037000000000000000000000000B3E071B60AE6666FACA529541E43E833708F0805000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000198E98CE1000000000000000000000000000000000000000000000000344000D9C9D67F96000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000710775BDA0AF88000000000000000000000000F326E4DE8F66A0BDC0970B79E0924E33C79F1915000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000000000364EB929661ECEC60000000000000000000000000000000000000000000000000000000198E98CE1000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B9794016631000000000000000000000000B3E071B60AE6666FACA529541E43E833708F08050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006421372201FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0BA3F4096421368C000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001B1E6E1E07900EF024D7795F4E8D9A84B7ED00868A1170510FE1E3A52309325D6B7C6EE7BDC0171C466DE04E1D9CBA26E15A3C04E0771808BF13F733D84D00B9E30000000000000000000000000000000000000000000000000000000198E98CE1 )
    • 0x7bba8bd42a19da78326be908e2cd52604399a748.92f5f037( )
      • TetherToken.allowance( _owner=0x74de5d4FCbf63E00296fd95d33236B9794016631, _spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( remaining=115792089237316195423570985008687907853269984665640564039457584007913129639935 )
      • ZeroEx.aa77476c( )
        • NativeOrdersFeature.fillRfqOrder( order=[{name:makerToken, type:address, order:1, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:takerToken, type:address, order:2, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:makerAmount, type:uint128, order:3, indexed:false, value:3913268713689632454, valueString:3913268713689632454}, {name:takerAmount, type:uint128, order:4, indexed:false, value:6860410081, valueString:6860410081}, {name:maker, type:address, order:5, indexed:false, value:0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, valueString:0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C}, {name:taker, type:address, order:6, indexed:false, value:0x74de5d4FCbf63E00296fd95d33236B9794016631, valueString:0x74de5d4FCbf63E00296fd95d33236B9794016631}, {name:txOrigin, type:address, order:7, indexed:false, value:0xb3E071b60AE6666fAcA529541e43e833708F0805, valueString:0xb3E071b60AE6666fAcA529541e43e833708F0805}, {name:pool, type:bytes32, order:8, indexed:false, value:0000000000000000000000000000000000000000000000000000000000000000, valueString:0000000000000000000000000000000000000000000000000000000000000000}, {name:expiry, type:uint64, order:9, indexed:false, value:1679898402, valueString:1679898402}, {name:salt, type:uint256, order:10, indexed:false, value:904625697166532776746648320380374280103671755124691286491287642689492746291, valueString:904625697166532776746648320380374280103671755124691286491287642689492746291}], signature=[{name:signatureType, type:uint8, order:1, indexed:false, value:3, valueString:3}, {name:v, type:uint8, order:2, indexed:false, value:27, valueString:27}, {name:r, type:bytes32, order:3, indexed:false, value:1E6E1E07900EF024D7795F4E8D9A84B7ED00868A1170510FE1E3A52309325D6B, valueString:1E6E1E07900EF024D7795F4E8D9A84B7ED00868A1170510FE1E3A52309325D6B}, {name:s, type:bytes32, order:4, indexed:false, value:7C6EE7BDC0171C466DE04E1D9CBA26E15A3C04E0771808BF13F733D84D00B9E3, valueString:7C6EE7BDC0171C466DE04E1D9CBA26E15A3C04E0771808BF13F733D84D00B9E3}], takerTokenFillAmount=6860410081 ) => ( takerTokenFilledAmount=6860410081, makerTokenFilledAmount=3913268713689632454 )
          • Null: 0x000...001.163f2cad( )
          • TetherToken.transferFrom( _from=0x74de5d4FCbf63E00296fd95d33236B9794016631, _to=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, _value=6860410081 )
          • WETH9.transferFrom( src=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, dst=0x74de5d4FCbf63E00296fd95d33236B9794016631, wad=3913268713689632454 ) => ( True )
          • WETH9.withdraw( wad=31814874642296712 )
            • ETH 0.031814874642296712 Spender.CALL( )
            • ETH 0.031814874642296712 Proxy.CALL( )
              • ETH 0.031814874642296712 GnosisSafe.DELEGATECALL( )
              • TetherToken.balanceOf( who=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 0 )
              • WETH9.balanceOf( 0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 3881453839047335742 )
              • WETH9.withdraw( wad=3881453839047335742 )
                • ETH 3.881453839047335742 Spender.CALL( )
                • ETH 3.881453839047335742 0xb3e071b60ae6666faca529541e43e833708f0805.CALL( )
                  File 1 of 8: 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 8: 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 3 of 8: 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 8: 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 8: ZeroEx
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  /*
                  Copyright 2020 ZeroEx Intl.
                  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.
                  */
                  pragma solidity ^0.6.5;
                  pragma experimental ABIEncoderV2;
                  import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";
                  import "./migrations/LibBootstrap.sol";
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 6 of 8: Proxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  pragma solidity ^0.5.3;
                  /// @title Proxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
                  /// @author Stefan George - <stefan@gnosis.io>
                  /// @author Richard Meissner - <richard@gnosis.io>
                  contract Proxy {
                  // masterCopy always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
                  // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
                  address internal masterCopy;
                  /// @dev Constructor function sets address of master copy contract.
                  /// @param _masterCopy Master copy address.
                  constructor(address _masterCopy)
                  public
                  {
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 7 of 8: NativeOrdersFeature
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: Apache-2.0
                  /*
                  Copyright 2021 ZeroEx Intl.
                  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.
                  */
                  pragma solidity ^0.6.5;
                  pragma experimental ABIEncoderV2;
                  import "../migrations/LibMigrate.sol";
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 8 of 8: GnosisSafe
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // SPDX-License-Identifier: LGPL-3.0-only
                  pragma solidity >=0.7.0 <0.9.0;
                  import "./base/ModuleManager.sol";
                  import "./base/OwnerManager.sol";
                  import "./base/FallbackManager.sol";
                  import "./base/GuardManager.sol";
                  import "./common/EtherPaymentFallback.sol";
                  import "./common/Singleton.sol";
                  import "./common/SignatureDecoder.sol";
                  import "./common/SecuredTokenTransfer.sol";
                  import "./common/StorageAccessible.sol";
                  import "./interfaces/ISignatureValidator.sol";
                  import "./external/GnosisSafeMath.sol";
                  /// @title Gnosis Safe - A multisignature wallet with support for confirmations using signed messages based on ERC191.
                  /// @author Stefan George - <stefan@gnosis.io>
                  /// @author Richard Meissner - <richard@gnosis.io>
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX