Transaction Hash:
Block:
18403417 at Oct-22-2023 04:20:35 AM +UTC
Transaction Fee:
0.00132212595996824 ETH
$3.53
Gas Used:
216,328 Gas / 6.11167283 Gwei
Emitted Events:
148 |
GraphToken.Transfer( from=[Sender] 0x2f387ae3749105563007ed4cb5ec1c81753e1c03, to=Spender, value=6464670434114650718519 )
|
149 |
GraphToken.Approval( owner=[Sender] 0x2f387ae3749105563007ed4cb5ec1c81753e1c03, spender=[Receiver] MetaSwap, value=115792089237316195423570985008687907853269984665640564032992913573798478921416 )
|
150 |
GraphToken.Transfer( from=Spender, to=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, value=6412112663485298000000 )
|
151 |
GraphToken.Approval( owner=Spender, spender=ZeroEx, value=115792089237316195423570985008687907853269984665640532693463455627957757781055 )
|
152 |
TetherToken.Transfer( from=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, to=Spender, value=531185955 )
|
153 |
ZeroEx.0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32( 0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32, 4fe2ac0359686655f902f46904eeee18d583227f40ce15316dc3d83f07dd8f11, 000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c, 00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 000000000000000000000000c944e90c64b2c07662a292be6244bdf05cda44a7, 00000000000000000000000000000000000000000000015b99f05e9c69084080, 000000000000000000000000000000000000000000000000000000001fa94123, 0000000000000000000000000000000000000000000000000000000000000000 )
|
154 |
GraphToken.Transfer( from=Spender, to=GnosisSafeProxy, value=52557770629352110342 )
|
155 |
GraphToken.Transfer( from=Spender, to=[Sender] 0x2f387ae3749105563007ed4cb5ec1c81753e1c03, value=608177 )
|
156 |
TetherToken.Transfer( from=Spender, to=[Sender] 0x2f387ae3749105563007ed4cb5ec1c81753e1c03, value=531185955 )
|
157 |
MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0x62db2e87ad4360c521a990935f97f7c44833c4f99a8f1c09129331715b07f525, 0x0000000000000000000000002f387ae3749105563007ed4cb5ec1c81753e1c03 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x2f387Ae3...1753e1C03 |
0.023309466197907592 Eth
Nonce: 390
|
0.021987340237939352 Eth
Nonce: 391
| 0.00132212595996824 | ||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 16.488910449083690711 Eth | 16.488916776304092255 Eth | 0.000006327220401544 | |
0xc944E90C...05Cda44a7 | |||||
0xdAC17F95...13D831ec7 | |||||
0xDef1C0de...027b25EfF | (0x: Exchange Proxy) |
Execution Trace
MetaSwap.swap( aggregatorId=pmmFeeDynamicv4, tokenFrom=0xc944E90C64B2c07662A292be6244BDf05Cda44a7, amount=6464670434114650718519, data=0x000000000000000000000000C944E90C64B2C07662A292BE6244BDF05CDA44A7000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000015B99F05E9C69118831000000000000000000000000000000000000000000000000000000001F07263C0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000002D962B5ECA4FDB9060000000000000000000000002ACF35C9A3F4C5C3F4C78EF5FB64C3EE82F07C45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000C944E90C64B2C07662A292BE6244BDF05CDA44A7000000000000000000000000000000000000000000000000000000001FA9412300000000000000000000000000000000000000000000015B99F05E9C69084080000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B97940166310000000000000000000000002F387AE3749105563007ED4CB5EC1C81753E1C030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006534A38301FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B7B39DE6534A2ED000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001BBE5E51C7A8322352867E70C7121CEB6992837D6DF6F6089F03758E6BA66D3B005FE8EEEBF448425409FAA45CBFC64E2F83082162BC6FE4033AA4A9D9137BD08C00000000000000000000000000000000000000000000015B99F05E9C69118831 )
-
GraphToken.transferFrom( sender=0x2f387Ae3749105563007Ed4cb5Ec1c81753e1C03, recipient=0x74de5d4FCbf63E00296fd95d33236B9794016631, amount=6464670434114650718519 ) => ( True )
Spender.swap( adapter=0x7bBa8Bd42A19DA78326bE908E2cd52604399a748, data=0x92F5F0370000000000000000000000002F387AE3749105563007ED4CB5EC1C81753E1C03000000000000000000000000C944E90C64B2C07662A292BE6244BDF05CDA44A7000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000000000000000000000000015B99F05E9C69118831000000000000000000000000000000000000000000000000000000001F07263C0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000002D962B5ECA4FDB9060000000000000000000000002ACF35C9A3F4C5C3F4C78EF5FB64C3EE82F07C45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E0000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000C944E90C64B2C07662A292BE6244BDF05CDA44A7000000000000000000000000000000000000000000000000000000001FA9412300000000000000000000000000000000000000000000015B99F05E9C69084080000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B97940166310000000000000000000000002F387AE3749105563007ED4CB5EC1C81753E1C030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006534A38301FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B7B39DE6534A2ED000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001BBE5E51C7A8322352867E70C7121CEB6992837D6DF6F6089F03758E6BA66D3B005FE8EEEBF448425409FAA45CBFC64E2F83082162BC6FE4033AA4A9D9137BD08C00000000000000000000000000000000000000000000015B99F05E9C69118831 )
0x7bba8bd42a19da78326be908e2cd52604399a748.92f5f037( )
-
GraphToken.allowance( owner=0x74de5d4FCbf63E00296fd95d33236B9794016631, spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( 115792089237316195423570985008687907853269984665640532699875568291443055781055 )
ZeroEx.aa77476c( )
NativeOrdersFeature.fillRfqOrder( order=[{name:makerToken, type:address, order:1, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:takerToken, type:address, order:2, indexed:false, value:0xc944E90C64B2c07662A292be6244BDf05Cda44a7, valueString:0xc944E90C64B2c07662A292be6244BDf05Cda44a7}, {name:makerAmount, type:uint128, order:3, indexed:false, value:531185955, valueString:531185955}, {name:takerAmount, type:uint128, order:4, indexed:false, value:6412112663485298000000, valueString:6412112663485298000000}, {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:0x2f387Ae3749105563007Ed4cb5Ec1c81753e1C03, valueString:0x2f387Ae3749105563007Ed4cb5Ec1c81753e1C03}, {name:pool, type:bytes32, order:8, indexed:false, value:0000000000000000000000000000000000000000000000000000000000000000, valueString:0000000000000000000000000000000000000000000000000000000000000000}, {name:expiry, type:uint64, order:9, indexed:false, value:1697948547, valueString:1697948547}, {name:salt, type:uint256, order:10, indexed:false, value:904625697166532776746648320380374280103671755124642050305204773381447090227, valueString:904625697166532776746648320380374280103671755124642050305204773381447090227}], 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:BE5E51C7A8322352867E70C7121CEB6992837D6DF6F6089F03758E6BA66D3B00, valueString:BE5E51C7A8322352867E70C7121CEB6992837D6DF6F6089F03758E6BA66D3B00}, {name:s, type:bytes32, order:4, indexed:false, value:5FE8EEEBF448425409FAA45CBFC64E2F83082162BC6FE4033AA4A9D9137BD08C, valueString:5FE8EEEBF448425409FAA45CBFC64E2F83082162BC6FE4033AA4A9D9137BD08C}], takerTokenFillAmount=6412112663485298608177 ) => ( takerTokenFilledAmount=6412112663485298000000, makerTokenFilledAmount=531185955 )
-
Null: 0x000...001.38b89caf( )
-
GraphToken.transferFrom( sender=0x74de5d4FCbf63E00296fd95d33236B9794016631, recipient=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, amount=6412112663485298000000 ) => ( True )
-
TetherToken.transferFrom( _from=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, _to=0x74de5d4FCbf63E00296fd95d33236B9794016631, _value=531185955 )
-
-
GraphToken.transfer( recipient=0x2aCf35C9A3F4c5C3F4c78EF5Fb64c3EE82f07c45, amount=52557770629352110342 ) => ( True )
-
GraphToken.balanceOf( account=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 608177 )
-
GraphToken.transfer( recipient=0x2f387Ae3749105563007Ed4cb5Ec1c81753e1C03, amount=608177 ) => ( True )
-
TetherToken.balanceOf( who=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 531185955 )
-
TetherToken.transfer( _to=0x2f387Ae3749105563007Ed4cb5Ec1c81753e1C03, _value=531185955 )
-
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 7: MetaSwap
File 2 of 7: Spender
File 3 of 7: GraphToken
File 4 of 7: TetherToken
File 5 of 7: ZeroEx
File 6 of 7: GnosisSafeProxy
File 7 of 7: NativeOrdersFeature
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 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 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 7: GraphToken
12345678910111213141516// Sources flattened with hardhat v2.0.2 https://hardhat.org// File @openzeppelin/contracts/GSN/Context.sol@v3.3.0-solc-0.7// SPDX-License-Identifier: MITpragma solidity ^0.7.0;/** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with GSN meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).*
File 4 of 7: 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 5 of 7: 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 7: GnosisSafeProxy
12345678910111213141516// SPDX-License-Identifier: LGPL-3.0-onlypragma solidity >=0.7.0 <0.9.0;/// @title IProxy - Helper interface to access masterCopy of the Proxy on-chain/// @author Richard Meissner - <richard@gnosis.io>interface IProxy {function masterCopy() external view returns (address);}/// @title GnosisSafeProxy - 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 GnosisSafeProxy {// singleton 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 singleton;
File 7 of 7: 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";