Transaction Hash:
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 | ||
---|---|---|---|---|---|
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 124.157966588769307977 Eth | 124.157986704488367462 Eth | 0.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 )
-
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: TetherToken
File 4 of 7: DydxToken
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: 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 7: DydxToken
12345678910111213141516// SPDX-License-Identifier: AGPL-3.0// File contracts/dependencies/open-zeppelin/Context.solpragma 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.*/
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";