Transaction Hash:
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 | ||
---|---|---|---|---|---|
0xb3E071b6...3708F0805 |
0.085046869460316533 Eth
Nonce: 93
|
3.963159568930497439 Eth
Nonce: 94
| 3.878112699470180906 | ||
0xC02aaA39...83C756Cc2 | 3,761,749.875514483043822726 Eth | 3,761,745.962245769354190272 Eth | 3.913268713689632454 | ||
0xdAC17F95...13D831ec7 | |||||
0xDAFEA492...692c98Bc5
Miner
| (Flashbots: Builder) | 1.210534446058210865 Eth | 1.210554647258210865 Eth | 0.0000202012 | |
0xDef1C0de...027b25EfF | (0x: Exchange Proxy) | ||||
0xF326e4dE...3c79f1915 | (MetaMask: DS Proxy) | 30,817.522274754742851182 Eth | 30,817.554089629385147894 Eth | 0.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
ETH 0.031814874642296712
Proxy.CALL( )
- ETH 0.031814874642296712
GnosisSafe.DELEGATECALL( )
- ETH 0.031814874642296712
-
TetherToken.balanceOf( who=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 0 )
-
WETH9.balanceOf( 0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 3881453839047335742 )
WETH9.withdraw( wad=3881453839047335742 )
- ETH 3.881453839047335742
Spender.CALL( )
- ETH 3.881453839047335742
- ETH 3.881453839047335742
0xb3e071b60ae6666faca529541e43e833708f0805.CALL( )
-
swap[MetaSwap (ln:1598)]
_swap[MetaSwap (ln:1604)]
safeTransferFrom[MetaSwap (ln:1637)]
swap[MetaSwap (ln:1639)]
encode[MetaSwap (ln:1643)]
Swap[MetaSwap (ln:1648)]
File 1 of 8: MetaSwap
File 2 of 8: Spender
File 3 of 8: TetherToken
File 4 of 8: WETH9
File 5 of 8: ZeroEx
File 6 of 8: Proxy
File 7 of 8: NativeOrdersFeature
File 8 of 8: GnosisSafe
12345678910111213141516pragma 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
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 internalconstant 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 todelegatecall\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\nif (success) {\r\n return returndata;\r\n } else {\r\n // Look for revert reason and bubble it up ifpresent\r\n if (returndata.length \u003e 0) {\r\n // The easiest way to bubble the revert reason is using memory viaassembly\r\n\r\n // solhint-disable-next-line no-inline-assembly\r\n assembly {\r\n letreturndata_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"}}
File 3 of 8: TetherToken
12345678910111213141516pragma 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;}
File 4 of 8: WETH9
12345678910111213141516// 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;
File 5 of 8: ZeroEx
12345678910111213141516/*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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.*/pragma solidity ^0.6.5;pragma experimental ABIEncoderV2;import "@0x/contracts-utils/contracts/src/v06/LibBytesV06.sol";import "./migrations/LibBootstrap.sol";
File 6 of 8: Proxy
12345678910111213141516pragma 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{
File 7 of 8: NativeOrdersFeature
12345678910111213141516// 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 athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed 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 andlimitations under the License.*/pragma solidity ^0.6.5;pragma experimental ABIEncoderV2;import "../migrations/LibMigrate.sol";
File 8 of 8: GnosisSafe
12345678910111213141516// SPDX-License-Identifier: LGPL-3.0-onlypragma 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>