Transaction Hash:
Block:
21780573 at Feb-05-2025 01:24:59 PM +UTC
Transaction Fee:
0.00033132720035805 ETH
$1.27
Gas Used:
267,891 Gas / 1.23679855 Gwei
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 9.341242151264885827 Eth | 9.341246594057633857 Eth | 0.00000444279274803 | |
0xE28776E7...B94d8c1E0 |
0.002378919186130982 Eth
Nonce: 144
|
0.002047591985772932 Eth
Nonce: 145
| 0.00033132720035805 |
Execution Trace
ZeroEx.415565b0( )
TransformERC20Feature.transformERC20( inputToken=0x555907a0b5c32DF0fEb35401187aED60a9191D74, outputToken=0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, inputTokenAmount=33486199301683660000000, minOutputTokenAmount=442993449, transformations= ) => ( outputTokenAmount=44280108230048337065371510003698035539431158071922791587663103572063451942104 )
FiatTokenProxy.70a08231( )
-
FiatTokenV2_2.balanceOf( account=0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0 ) => ( 0 )
-
trumpwifhat.transferFrom( src=0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0, dst=0x22F9dCF4647084d6C31b2765F6910cd85C178C18, rawAmount=33486199301683660000000 ) => ( True )
0x2415c6d988cefd610d1b024a2df38d2b730f6c5c.02acc130( )
0x1215ca69be7979076d5fd3fd56344752186c8658.02acc130( )
-
WETH9.balanceOf( 0xe4bb64b976bA9Fb3647Af2A958760E8C7d7A85aC ) => ( 103788646261583451937 )
-
FlashWallet.STATICCALL( )
0x2e083137a4e4c47efe9101a5d950abfb53aacee1.8b2ddd63( )
-
0xca1db1e0846662db16408cb0d78f22ebd24f5b1a.8b2ddd63( )
-
-
FlashWallet.executeDelegateCall( target=0x2Fd08C1F9FC8406C1D7E3A799A13883a7E7949f0, callData=0x832B24BB0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000E28776E7B99C79C11629A17D1179EFBB94D8C1E0000000000000000000000000E28776E7B99C79C11629A17D1179EFBB94D8C1E00000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002C00000000000000000000000000000000000000000000007174A5E4F64C4290B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000002556E69737761705632000000000000000000000000000000000000000000000000000000000007174A5E4F64C4290B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000F164FC0EC4E93095B804A4795BBE1E041497B92A00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
FillQuoteTransformer.transform( context=[{name:sender, type:address, order:1, indexed:false, value:0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0, valueString:0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0}, {name:recipient, type:address, order:2, indexed:false, value:0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0, valueString:0xE28776E7B99c79C11629A17D1179EfBB94d8c1E0}, {name:data, type:bytes, order:3, indexed:false, value:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002C00000000000000000000000000000000000000000000007174A5E4F64C4290B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000002556E69737761705632000000000000000000000000000000000000000000000000000000000007174A5E4F64C4290B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000F164FC0EC4E93095B804A4795BBE1E041497B92A00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, valueString:0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC200000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000002C00000000000000000000000000000000000000000000007174A5E4F64C4290B00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000002556E69737761705632000000000000000000000000000000000000000000000000000000000007174A5E4F64C4290B000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000A0000000000000000000000000F164FC0EC4E93095B804A4795BBE1E041497B92A00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}] ) => ( magicBytes=System.Byte[] )
trumpwifhat.balanceOf( account=0x22F9dCF4647084d6C31b2765F6910cd85C178C18 ) => ( 33486199301683660000000 )
0x2415c6d988cefd610d1b024a2df38d2b730f6c5c.70a08231( )
-
0x1215ca69be7979076d5fd3fd56344752186c8658.70a08231( )
-
EthereumBridgeAdapter.trade( order=[{name:source, type:bytes32, order:1, indexed:false, value:00000000000000000000000000000002556E6973776170563200000000000000, valueString:00000000000000000000000000000002556E6973776170563200000000000000}, {name:takerTokenAmount, type:uint256, order:2, indexed:false, value:33486199301683660000000, valueString:33486199301683660000000}, {name:makerTokenAmount, type:uint256, order:3, indexed:false, value:0, valueString:0}, {name:bridgeData, type:bytes, order:4, indexed:false, value:0x000000000000000000000000F164FC0EC4E93095B804A4795BBE1E041497B92A00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, valueString:0x000000000000000000000000F164FC0EC4E93095B804A4795BBE1E041497B92A00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000555907A0B5C32DF0FEB35401187AED60A9191D74000000000000000000000000C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2}], sellToken=0x555907a0b5c32DF0fEb35401187aED60a9191D74, buyToken=0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, sellAmount=33486199301683660000000 ) => ( boughtAmount=3963877391197344453575983046348115674221700746820753546331534351508065746944 )
-
trumpwifhat.allowance( account=0x22F9dCF4647084d6C31b2765F6910cd85C178C18, spender=0xf164fC0Ec4E93095b804a4795bBe1e041497b92a ) => ( 0 )
trumpwifhat.approve( spender=0xf164fC0Ec4E93095b804a4795bBe1e041497b92a, rawAmount=115792089237316195423570985008687907853269984665640564039457584007913129639935 ) => ( True )
-
0x2415c6d988cefd610d1b024a2df38d2b730f6c5c.5c19a95c( )
-
UniswapV2Router01.swapExactTokensForTokens( amountIn=33486199301683660000000, amountOutMin=1, path=[0x555907a0b5c32DF0fEb35401187aED60a9191D74, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], to=0x22F9dCF4647084d6C31b2765F6910cd85C178C18, deadline=1738761899 )
-
UniswapV2Pair.STATICCALL( )
-
trumpwifhat.transferFrom( src=0x22F9dCF4647084d6C31b2765F6910cd85C178C18, dst=0xe4bb64b976bA9Fb3647Af2A958760E8C7d7A85aC, rawAmount=33486199301683660000000 )
-
-
transformERC20[TransformERC20Feature (ln:182)]
_transformERC20Private[TransformERC20Feature (ln:194)]
isTokenETH[TransformERC20Feature (ln:230)]
_getSpendableERC20BalanceOf[TransformERC20Feature (ln:235)]
getTransformWallet[TransformERC20Feature (ln:242)]
getStorage[TransformERC20Feature (ln:305)]
getStorageSlot[LibTransformERC20Storage (ln:2531)]
getTransformerDeployer[TransformERC20Feature (ln:243)]
getStorage[TransformERC20Feature (ln:105)]
getStorageSlot[LibTransformERC20Storage (ln:2531)]
getTokenBalanceOf[TransformERC20Feature (ln:246)]
isTokenETH[LibERC20Transformer (ln:2686)]
balanceOf[LibERC20Transformer (ln:2689)]
_transferInputTokensAndAttachedEth[TransformERC20Feature (ln:248)]
isTokenETH[TransformERC20Feature (ln:317)]
rrevert[TransformERC20Feature (ln:321)]
InsufficientEthAttachedError[TransformERC20Feature (ln:321)]
encodeWithSelector[LibTransformERC20RichErrors (ln:1541)]
transfer[TransformERC20Feature (ln:328)]
isTokenETH[TransformERC20Feature (ln:331)]
_transferERC20Tokens[TransformERC20Feature (ln:334)]
_transferERC20TokensFrom[TransformERC20Feature (ln:341)]
_executeTransformation[TransformERC20Feature (ln:252)]
getDeployedAddress[TransformERC20Feature (ln:364)]
rlpEncodeNonce[LibERC20Transformer (ln:2744)]
executeDelegateCall[TransformERC20Feature (ln:369)]
encodeWithSelector[TransformERC20Feature (ln:373)]
TransformContext[TransformERC20Feature (ln:375)]
decode[TransformERC20Feature (ln:384)]
rrevert[TransformERC20Feature (ln:386)]
TransformerFailedError[TransformERC20Feature (ln:386)]
encodeWithSelector[LibTransformERC20RichErrors (ln:1586)]
_executeOutputTokenTransfer[TransformERC20Feature (ln:260)]
getTokenBalanceOf[TransformERC20Feature (ln:402)]
isTokenETH[LibERC20Transformer (ln:2686)]
balanceOf[LibERC20Transformer (ln:2689)]
isTokenETH[TransformERC20Feature (ln:403)]
executeCall[TransformERC20Feature (ln:404)]
executeCall[TransformERC20Feature (ln:410)]
payable[TransformERC20Feature (ln:411)]
encodeWithSelector[TransformERC20Feature (ln:412)]
readUint256[TransformERC20Feature (ln:429)]
readBytes32[LibBytesV06 (ln:1162)]
rrevert[LibBytesV06 (ln:1110)]
InvalidByteOperationError[LibBytesV06 (ln:1110)]
encodeWithSelector[LibBytesRichErrorsV06 (ln:1261)]
rrevert[TransformERC20Feature (ln:431)]
rrevert[TransformERC20Feature (ln:436)]
getTokenBalanceOf[TransformERC20Feature (ln:268)]
isTokenETH[LibERC20Transformer (ln:2686)]
balanceOf[LibERC20Transformer (ln:2689)]
rrevert[TransformERC20Feature (ln:270)]
NegativeTransformERC20OutputError[TransformERC20Feature (ln:270)]
encodeWithSelector[LibTransformERC20RichErrors (ln:1571)]
min256[TransformERC20Feature (ln:275)]
safeSub[TransformERC20Feature (ln:277)]
rrevert[TransformERC20Feature (ln:281)]
IncompleteTransformERC20Error[TransformERC20Feature (ln:281)]
encodeWithSelector[LibTransformERC20RichErrors (ln:1556)]
TransformedERC20[TransformERC20Feature (ln:288)]
TransformERC20Args[TransformERC20Feature (ln:195)]
File 1 of 11: ZeroEx
File 2 of 11: TransformERC20Feature
File 3 of 11: FiatTokenProxy
File 4 of 11: FiatTokenV2_2
File 5 of 11: trumpwifhat
File 6 of 11: WETH9
File 7 of 11: FlashWallet
File 8 of 11: FillQuoteTransformer
File 9 of 11: EthereumBridgeAdapter
File 10 of 11: UniswapV2Router01
File 11 of 11: UniswapV2Pair
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 2 of 11: TransformERC20Feature
12345678910111213141516// SPDX-License-Identifier: Apache-2.0/*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-erc20/contracts/src/v06/IERC20TokenV06.sol";
File 3 of 11: FiatTokenProxy
12345678910111213141516pragma solidity ^0.4.24;// File: zos-lib/contracts/upgradeability/Proxy.sol/*** @title Proxy* @dev Implements delegation of calls to other contracts, with proper* forwarding of return values and bubbling of failures.* It defines a fallback function that delegates all calls to the address* returned by the abstract _implementation() internal function.*/contract Proxy {/*** @dev Fallback function.* Implemented entirely in `_fallback`.*/
File 4 of 11: FiatTokenV2_2
12345678910111213141516/*** SPDX-License-Identifier: Apache-2.0** Copyright (c) 2023, Circle Internet Financial, LLC.** 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.
File 5 of 11: trumpwifhat
12345678910111213141516/*** SPDX-License-Identifier: MIT*/pragma solidity 0.8.11;library SafeMath {/*** @dev Returns the addition of two unsigned integers, with an overflow flag.** _Available since v3.4._*/function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {unchecked {uint256 c = a + b;if (c < a) return (false, 0);return (true, c);
File 6 of 11: 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 7 of 11: FlashWallet
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 8 of 11: FillQuoteTransformer
12345678910111213141516// SPDX-License-Identifier: Apache-2.0/*Copyright 2023 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/errors/LibRichErrorsV06.sol";
File 9 of 11: EthereumBridgeAdapter
12345678910111213141516// SPDX-License-Identifier: Apache-2.0/*Copyright 2023 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 "./AbstractBridgeAdapter.sol";
File 10 of 11: UniswapV2Router01
12345678910111213141516// File: @uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.solpragma solidity >=0.5.0;interface IUniswapV2Factory {event PairCreated(address indexed token0, address indexed token1, address pair, uint);function feeTo() external view returns (address);function feeToSetter() external view returns (address);function getPair(address tokenA, address tokenB) external view returns (address pair);function allPairs(uint) external view returns (address pair);function allPairsLength() external view returns (uint);function createPair(address tokenA, address tokenB) external returns (address pair);
File 11 of 11: UniswapV2Pair
12345678910111213141516// File: contracts/interfaces/IUniswapV2Pair.solpragma solidity >=0.5.0;interface IUniswapV2Pair {event Approval(address indexed owner, address indexed spender, uint value);event Transfer(address indexed from, address indexed to, uint value);function name() external pure returns (string memory);function symbol() external pure returns (string memory);function decimals() external pure returns (uint8);function totalSupply() external view returns (uint);function balanceOf(address owner) external view returns (uint);function allowance(address owner, address spender) external view returns (uint);function approve(address spender, uint value) external returns (bool);