ETH Price: $2,666.70 (+1.89%)
Gas: 5.47 Gwei

Transaction Decoder

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 Code
0x2f387Ae3...1753e1C03
0.023309466197907592 Eth
Nonce: 390
0.021987340237939352 Eth
Nonce: 391
0.00132212595996824
(Titan Builder)
16.488910449083690711 Eth16.488916776304092255 Eth0.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 )
            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: 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 7: GraphToken
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // 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: MIT
            pragma 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).
            *
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 4 of 7: 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 5 of 7: 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 7: GnosisSafeProxy
            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;
            /// @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;
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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