Transaction Hash:
Block:
20890101 at Oct-04-2024 05:35:35 AM +UTC
Transaction Fee:
0.000373758592656072 ETH
$1.39
Gas Used:
91,572 Gas / 4.081581626 Gwei
Emitted Events:
141 |
WETH9.Transfer( src=[Sender] 0x4f4b86fbcc75e83e3445b3f2cf8283702d56134f, dst=ERC20Router, wad=800000000000000 )
|
142 |
WETH9.Approval( src=ERC20Router, guy=ERC20Router, wad=800000000000000 )
|
143 |
WETH9.Withdrawal( src=ERC20Router, wad=800000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x4F4b86FB...02D56134f |
0.001353361604033995 Eth
Nonce: 10
|
0.000979603011377923 Eth
Nonce: 11
| 0.000373758592656072 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 7.033285236906453306 Eth | 7.033335433216438998 Eth | 0.000050196309985692 | |
0xC02aaA39...83C756Cc2 | 2,926,395.483173138576359774 Eth | 2,926,395.482373138576359774 Eth | 0.0008 | ||
0xf70da978...8dfA3dbEF | (Relay: Solver) | 411.971314919647412301 Eth | 411.972114919647412301 Eth | 0.0008 |
Execution Trace
ApprovalProxy.transferAndMulticall( tokens=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2], amounts=[800000000000000], targets=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF], datas=[CV6nswAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALXmIPSAAA=, Lhp9TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAA, ], values=[0, 0, 800000000000000], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
-
WETH9.transferFrom( src=0x4F4b86FBCc75e83E3445b3F2cf8283702D56134f, dst=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, wad=800000000000000 ) => ( True )
ERC20Router.delegatecallMulticall( targets=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF], datas=[CV6nswAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALXmIPSAAA=, Lhp9TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAA, ], values=[0, 0, 800000000000000], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C00000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
Multicaller.aggregate( targets=[0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF], data=[CV6nswAAAAAAAAAAAAAAAKG+pf6RdFAEF0jbu+fprFeku+urAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALXmIPSAAA=, Lhp9TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAA, ], values=[0, 0, 800000000000000], refundTo=0xf70da97812CB96acDF810712Aa562db8dfA3dbEF ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, , ] )
transferAndMulticall[ApprovalProxy (ln:37)]
ArrayLengthsMismatch[ApprovalProxy (ln:47)]
ArrayLengthsMismatch[ApprovalProxy (ln:51)]
safeTransferFrom[ApprovalProxy (ln:55)]
delegatecallMulticall[ApprovalProxy (ln:60)]
File 1 of 4: ApprovalProxy
File 2 of 4: ERC20Router
File 3 of 4: WETH9
File 4 of 4: Multicaller
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 4: 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 3 of 4: 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 4 of 4: 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();