Transaction Hash:
Block:
20895322 at Oct-04-2024 11:02:47 PM +UTC
Transaction Fee:
0.000812444266029 ETH
$3.04
Gas Used:
188,375 Gas / 4.312909176 Gwei
Emitted Events:
51 |
FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000bf27653c7009d0f5c54646198bdae95e1a8c5ab5, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0000000000000000000000000000000000000000000000000000000002860119 )
|
52 |
FiatTokenProxy.0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925( 0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff, 0000000000000000000000000000000000000000000000000000000002860119 )
|
53 |
WETH9.Transfer( src=0x88e6A0c2dDD26FEEb64F039a2c41296FcB3f5640, dst=ZeroEx, wad=17485413694283599 )
|
54 |
FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f5640, 0000000000000000000000000000000000000000000000000000000002860119 )
|
55 |
0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640.0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67( 0xc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67, 0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff, 0x000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff, 0000000000000000000000000000000000000000000000000000000002860119, ffffffffffffffffffffffffffffffffffffffffffffffffffc1e11be00060b1, 0000000000000000000000000000000000004f67bac5faad69884cc2e44d7136, 0000000000000000000000000000000000000000000000008086bd20f7dcd990, 0000000000000000000000000000000000000000000000000000000000030704 )
|
56 |
WETH9.Withdrawal( src=ZeroEx, wad=17485413694283599 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x88e6A0c2...FcB3f5640 | (Uniswap V3: USDC 3) | ||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 13.090879177115468816 Eth | 13.091085127704153316 Eth | 0.0002059505886845 | |
0xA0b86991...E3606eB48 | |||||
0xbF27653C...e1A8C5AB5 |
0.116920559493403981 Eth
Nonce: 91
|
0.116108115227374981 Eth
Nonce: 92
| 0.000812444266029 | ||
0xC02aaA39...83C756Cc2 | 2,955,903.349300232608002235 Eth | 2,955,903.331814818913718636 Eth | 0.017485413694283599 | ||
0xf70da978...8dfA3dbEF | (Relay: Solver) | 364.161003457188215055 Eth | 364.178488870882498654 Eth | 0.017485413694283599 |
Execution Trace
ApprovalProxy.transferAndMulticall( tokens=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48], amounts=[42336537], targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], datas=[CV6nswAAAAAAAAAAAAAAAN7xwN7ZvsfxoWcIGYMyQPAnsl7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARk=, gDuibQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXt+ppZrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuguGmRxiGLNsHRnUounrDONgbrSAAB9MAqqjmyI/6NCg5cTyfq2Qg8dWzCAAAAAAAAAAAAAAAAAAAAAAAAAAAAhpWEzQAAAAAAAAAAAAAAAJTTJaazGue7ePQ/uX2kN8HD9C+WAAAAAAAAAAAAAAAAAAAAAAAAAABJGrefAdVYbrZMc0A=], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000003E1EE41FFF9F4F )
FiatTokenProxy.23b872dd( )
-
FiatTokenV2_2.transferFrom( from=0xbF27653C7009D0f5C54646198BDaE95e1A8C5AB5, to=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, value=42336537 ) => ( True )
-
ERC20Router.delegatecallMulticall( targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], datas=[CV6nswAAAAAAAAAAAAAAAN7xwN7ZvsfxoWcIGYMyQPAnsl7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARk=, gDuibQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXt+ppZrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuguGmRxiGLNsHRnUounrDONgbrSAAB9MAqqjmyI/6NCg5cTyfq2Qg8dWzCAAAAAAAAAAAAAAAAAAAAAAAAAAAAhpWEzQAAAAAAAAAAAAAAAJTTJaazGue7ePQ/uX2kN8HD9C+WAAAAAAAAAAAAAAAAAAAAAAAAAABJGrefAdVYbrZMc0A=], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000003E1EE41FFF9F4F )
Multicaller.aggregate( targets=[0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, 0xDef1C0ded9bec7F1a1670819833240f027b25EfF], data=[CV6nswAAAAAAAAAAAAAAAN7xwN7ZvsfxoWcIGYMyQPAnsl7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARk=, gDuibQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGARkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPXt+ppZrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACuguGmRxiGLNsHRnUounrDONgbrSAAB9MAqqjmyI/6NCg5cTyfq2Qg8dWzCAAAAAAAAAAAAAAAAAAAAAAAAAAAAhpWEzQAAAAAAAAAAAAAAAJTTJaazGue7ePQ/uX2kN8HD9C+WAAAAAAAAAAAAAAAAAAAAAAAAAABJGrefAdVYbrZMc0A=], values=[0, 0], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4e5B//n08=] )
FiatTokenProxy.095ea7b3( )
-
FiatTokenV2_2.approve( spender=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, value=42336537 ) => ( True )
-
ZeroEx.803ba26d( )
UniswapV3Feature.sellTokenForEthToUniswapV3( encodedPath=0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB480001F4C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2, sellAmount=42336537, minBuyAmount=17305757470321572, recipient=0x0000000000000000000000000000000000000000 ) => ( buyAmount=17485413694283599 )
Uniswap V3: USDC 3.128acb08( )
-
WETH9.transfer( dst=0xDef1C0ded9bec7F1a1670819833240f027b25EfF, wad=17485413694283599 ) => ( True )
-
FiatTokenProxy.70a08231( )
-
ZeroEx.fa461e33( )
-
FiatTokenProxy.70a08231( )
-
WETH9.withdraw( wad=17485413694283599 )
- ETH 0.017485413694283599
ZeroEx.CALL( )
- ETH 0.017485413694283599
- ETH 0.017485413694283599
ERC20Router.CALL( )
- ETH 0.017485413694283599
Relay: Solver.CALL( )
transferAndMulticall[ApprovalProxy (ln:37)]
ArrayLengthsMismatch[ApprovalProxy (ln:47)]
ArrayLengthsMismatch[ApprovalProxy (ln:51)]
safeTransferFrom[ApprovalProxy (ln:55)]
delegatecallMulticall[ApprovalProxy (ln:60)]
File 1 of 8: ApprovalProxy
File 2 of 8: FiatTokenProxy
File 3 of 8: ZeroEx
File 4 of 8: WETH9
File 5 of 8: FiatTokenV2_2
File 6 of 8: ERC20Router
File 7 of 8: Multicaller
File 8 of 8: UniswapV3Feature
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.23;import {Ownable} from "solady/src/auth/Ownable.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {IERC20Router} from "../src/types/interfaces/IERC20Router.sol";contract ApprovalProxy is Ownable {using SafeERC20 for IERC20;error ArrayLengthsMismatch();error ERC20TransferFromFailed();error NativeTransferFailed();event RouterUpdated(address newRouter);address public router;receive() external payable {}constructor(address _owner, address _router) {_initializeOwner(_owner);
File 2 of 8: 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 3 of 8: 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 4 of 8: 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 5 of 8: 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 6 of 8: ERC20Router
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.25;import {Ownable} from "solady/src/auth/Ownable.sol";import {Tstorish} from "tstorish/src/Tstorish.sol";import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol";import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import {IAllowanceTransfer} from "permit2-relay/src/interfaces/IAllowanceTransfer.sol";import {ISignatureTransfer} from "permit2-relay/src/interfaces/ISignatureTransfer.sol";import {IPermit2} from "permit2-relay/src/interfaces/IPermit2.sol";import {RelayerWitness} from "./types/lib/RelayStructs.sol";import {IMulticaller} from "./types/interfaces/IMulticaller.sol";contract ERC20Router is Ownable, Tstorish {using SafeERC20 for IERC20;// --- Errors --- //
File 7 of 8: Multicaller
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.4;/*** @title Multicaller* @author vectorized.eth* @notice Contract that allows for efficient aggregation* of multiple calls in a single transaction.*/contract Multicaller {// =============================================================// ERRORS// =============================================================/*** @dev The lengths of the input arrays are not the same.*/error ArrayLengthsMismatch();
File 8 of 8: UniswapV3Feature
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 <0.9;interface IERC20Token {event Transfer(address indexed from, address indexed to, uint256 value);