ETH Price: $3,777.30 (+0.74%)

Transaction Decoder

Block:
19300210 at Feb-24-2024 09:45:11 PM +UTC
Transaction Fee:
0.01108054357433592 ETH $41.85
Gas Used:
449,805 Gas / 24.634104944 Gwei

Emitted Events:

163 TetherToken.Transfer( from=[Sender] 0x82c5c6d83041e34b186582bf10128d66ba93003f, to=Spender, value=513493386 )
164 TetherToken.Transfer( from=Spender, to=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, value=509000319 )
165 DydxToken.DelegatedPowerChanged( user=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, amount=54234104671890627226197, delegationType=0 )
166 DydxToken.DelegatedPowerChanged( user=Spender, amount=143306007940873214952, delegationType=0 )
167 DydxToken.DelegatedPowerChanged( user=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, amount=54234104671890627226197, delegationType=1 )
168 DydxToken.DelegatedPowerChanged( user=Spender, amount=143306007940873214952, delegationType=1 )
169 DydxToken.Transfer( from=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, to=Spender, value=143306007940873214952 )
170 DydxToken.Approval( owner=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, spender=ZeroEx, value=115792089237316195423570985008687907853269984665640563369627273632855879784530 )
171 ZeroEx.0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32( 0x829fa99d94dc4636925b38632e625736a614c154d55006b7ab6bea979c210c32, 62e374a41f6c1bc42612ca553f68389f3a58c21510bf5ad4f33bbc02391b5249, 000000000000000000000000a69babef1ca67a37ffaf7a485dfff3382056e78c, 00000000000000000000000074de5d4fcbf63e00296fd95d33236b9794016631, 00000000000000000000000092d6c1e31e14520e676a687f0a93788b716beff5, 000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7, 000000000000000000000000000000000000000000000000000000001e56ba7f, 000000000000000000000000000000000000000000000007c4c536f4570e5be8, 0000000000000000000000000000000000000000000000000000000000000000 )
172 TetherToken.Transfer( from=Spender, to=GnosisSafeProxy, value=4493067 )
173 DydxToken.DelegatedPowerChanged( user=Spender, amount=0, delegationType=0 )
174 DydxToken.DelegatedPowerChanged( user=[Sender] 0x82c5c6d83041e34b186582bf10128d66ba93003f, amount=143306007940873214952, delegationType=0 )
175 DydxToken.DelegatedPowerChanged( user=Spender, amount=0, delegationType=1 )
176 DydxToken.DelegatedPowerChanged( user=[Sender] 0x82c5c6d83041e34b186582bf10128d66ba93003f, amount=143306007940873214952, delegationType=1 )
177 DydxToken.Transfer( from=Spender, to=[Sender] 0x82c5c6d83041e34b186582bf10128d66ba93003f, value=143306007940873214952 )
178 MetaSwap.Swap( 0xbeee1e6e7fe307ddcf84b0a16137a4430ad5e2480fc4f4a8e250ab56ccd7630d, 0x62db2e87ad4360c521a990935f97f7c44833c4f99a8f1c09129331715b07f525, 0x00000000000000000000000082c5c6d83041e34b186582bf10128d66ba93003f )

Account State Difference:

  Address   Before After State Difference Code
(Titan Builder)
124.157966588769307977 Eth124.157986704488367462 Eth0.000020115719059485
0x82c5C6D8...6ba93003F
0.168868297576226306 Eth
Nonce: 45
0.157787754001890386 Eth
Nonce: 46
0.01108054357433592
0x92D6C1e3...B716BEff5
0xdAC17F95...13D831ec7
0xDef1C0de...027b25EfF
(0x: Exchange Proxy)

Execution Trace

MetaSwap.swap( aggregatorId=pmmFeeDynamicv4, tokenFrom=0xdAC17F958D2ee523a2206206994597C13D831ec7, amount=513493386, data=0x000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000092D6C1E31E14520E676A687F0A93788B716BEFF5000000000000000000000000000000000000000000000000000000001E56BA7F0000000000000000000000000000000000000000000000079CFEB5DAF927ABFD00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000448F0B0000000000000000000000002ACF35C9A3F4C5C3F4C78EF5FB64C3EE82F07C45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E000000000000000000000000092D6C1E31E14520E676A687F0A93788B716BEFF5000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000000007C4C536F4570E5BE8000000000000000000000000000000000000000000000000000000001E56BA7F000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B979401663100000000000000000000000082C5C6D83041E34B186582BF10128D66BA93003F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065DA63ED01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06DBA2B465DA6357000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001C32666092D708DD83B61E137FD1A0C77559F6DAE24823528D103E274C1F7CC93A019FDEB369A50B4F5462E9B9E60C3C0F023734B8868D8D6FF8B06BDAE291409B000000000000000000000000000000000000000000000000000000001E56BA7F )
  • TetherToken.transferFrom( _from=0x82c5C6D83041e34B186582bF10128D66ba93003F, _to=0x74de5d4FCbf63E00296fd95d33236B9794016631, _value=513493386 )
  • Spender.swap( adapter=0x7bBa8Bd42A19DA78326bE908E2cd52604399a748, data=0x92F5F03700000000000000000000000082C5C6D83041E34B186582BF10128D66BA93003F000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC700000000000000000000000092D6C1E31E14520E676A687F0A93788B716BEFF5000000000000000000000000000000000000000000000000000000001E56BA7F0000000000000000000000000000000000000000000000079CFEB5DAF927ABFD00000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000448F0B0000000000000000000000002ACF35C9A3F4C5C3F4C78EF5FB64C3EE82F07C45000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001E000000000000000000000000092D6C1E31E14520E676A687F0A93788B716BEFF5000000000000000000000000DAC17F958D2EE523A2206206994597C13D831EC7000000000000000000000000000000000000000000000007C4C536F4570E5BE8000000000000000000000000000000000000000000000000000000001E56BA7F000000000000000000000000A69BABEF1CA67A37FFAF7A485DFFF3382056E78C00000000000000000000000074DE5D4FCBF63E00296FD95D33236B979401663100000000000000000000000082C5C6D83041E34B186582BF10128D66BA93003F00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000065DA63ED01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06DBA2B465DA6357000000330000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000001C32666092D708DD83B61E137FD1A0C77559F6DAE24823528D103E274C1F7CC93A019FDEB369A50B4F5462E9B9E60C3C0F023734B8868D8D6FF8B06BDAE291409B000000000000000000000000000000000000000000000000000000001E56BA7F )
    • 0x7bba8bd42a19da78326be908e2cd52604399a748.92f5f037( )
      • TetherToken.allowance( _owner=0x74de5d4FCbf63E00296fd95d33236B9794016631, _spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF ) => ( remaining=115792089237316195423570985008687907853269984665640564039457584007913129639935 )
      • ZeroEx.aa77476c( )
        • NativeOrdersFeature.fillRfqOrder( order=[{name:makerToken, type:address, order:1, indexed:false, value:0x92D6C1e31e14520e676a687F0a93788B716BEff5, valueString:0x92D6C1e31e14520e676a687F0a93788B716BEff5}, {name:takerToken, type:address, order:2, indexed:false, value:0xdAC17F958D2ee523a2206206994597C13D831ec7, valueString:0xdAC17F958D2ee523a2206206994597C13D831ec7}, {name:makerAmount, type:uint128, order:3, indexed:false, value:143306007940873214952, valueString:143306007940873214952}, {name:takerAmount, type:uint128, order:4, indexed:false, value:509000319, valueString:509000319}, {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:0x82c5C6D83041e34B186582bF10128D66ba93003F, valueString:0x82c5C6D83041e34B186582bF10128D66ba93003F}, {name:pool, type:bytes32, order:8, indexed:false, value:0000000000000000000000000000000000000000000000000000000000000000, valueString:0000000000000000000000000000000000000000000000000000000000000000}, {name:expiry, type:uint64, order:9, indexed:false, value:1708811245, valueString:1708811245}, {name:salt, type:uint256, order:10, indexed:false, value:904625697166532776746648320380374280103671755123211177208545157588197572659, valueString:904625697166532776746648320380374280103671755123211177208545157588197572659}], signature=[{name:signatureType, type:uint8, order:1, indexed:false, value:3, valueString:3}, {name:v, type:uint8, order:2, indexed:false, value:28, valueString:28}, {name:r, type:bytes32, order:3, indexed:false, value:32666092D708DD83B61E137FD1A0C77559F6DAE24823528D103E274C1F7CC93A, valueString:32666092D708DD83B61E137FD1A0C77559F6DAE24823528D103E274C1F7CC93A}, {name:s, type:bytes32, order:4, indexed:false, value:019FDEB369A50B4F5462E9B9E60C3C0F023734B8868D8D6FF8B06BDAE291409B, valueString:019FDEB369A50B4F5462E9B9E60C3C0F023734B8868D8D6FF8B06BDAE291409B}], takerTokenFillAmount=509000319 ) => ( takerTokenFilledAmount=509000319, makerTokenFilledAmount=143306007940873214952 )
          • Null: 0x000...001.0199b74b( )
          • TetherToken.transferFrom( _from=0x74de5d4FCbf63E00296fd95d33236B9794016631, _to=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, _value=509000319 )
          • DydxToken.transferFrom( sender=0xA69babEF1cA67A37Ffaf7a485DfFF3382056e78C, recipient=0x74de5d4FCbf63E00296fd95d33236B9794016631, amount=143306007940873214952 ) => ( True )
          • TetherToken.transfer( _to=0x2aCf35C9A3F4c5C3F4c78EF5Fb64c3EE82f07c45, _value=4493067 )
          • TetherToken.balanceOf( who=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 0 )
          • DydxToken.balanceOf( account=0x74de5d4FCbf63E00296fd95d33236B9794016631 ) => ( 143306007940873214952 )
          • DydxToken.transfer( recipient=0x82c5C6D83041e34B186582bF10128D66ba93003F, amount=143306007940873214952 ) => ( 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: 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: 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 7: DydxToken
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // SPDX-License-Identifier: AGPL-3.0
            // File contracts/dependencies/open-zeppelin/Context.sol
            pragma solidity 0.7.5;
            /*
            * @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).
            *
            * This contract is only required for intermediate, library-like contracts.
            */
            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