Transaction Hash:
Block:
21973726 at Mar-04-2025 01:08:47 PM +UTC
Transaction Fee:
0.0006375285 ETH
$2.73
Gas Used:
303,585 Gas / 2.1 Gwei
Emitted Events:
431 |
MyShell.Transfer( from=[Sender] 0x84ce22f33e099ed8858ff40862436fb58e4178f2, to=ERC20Router, value=97350000000000000000 )
|
432 |
MyShell.Approval( owner=ERC20Router, spender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=97350000000000000000 )
|
433 |
MyShell.Transfer( from=ERC20Router, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=97350000000000000000 )
|
434 |
FiatTokenProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000001aa5f0538e7d123d358f439d4118228db43f2bd0, 0x0000000000000000000000002e8135be71230c6b1b4045696d41c09db0414226, 0000000000000000000000000000000000000000000000000000000002037326 )
|
435 |
MyShell.Transfer( from=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, to=UniswapV3Pool, value=97350000000000000000 )
|
436 |
UniswapV3Pool.Swap( sender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, recipient=PancakePair, amount0=-33780518, amount1=97350000000000000000, sqrtPriceX96=133924751559241071049146315622539828, liquidity=36779450473945545, tick=286823 )
|
437 |
WETH9.Transfer( src=PancakePair, dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=16087170791898707 )
|
438 |
PancakePair.Sync( reserve0=127795937560, reserve1=60996188637383520710 )
|
439 |
PancakePair.Swap( sender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, amount0In=33780518, amount1In=0, amount0Out=0, amount1Out=16087170791898707, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 )
|
440 |
WETH9.Withdrawal( src=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=16087170791898707 )
|
441 |
0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd( 0x1bf1122521093cffed0b7f29833cd231d885bae58dceb074e411a1fbd94824bd, 0x000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 0x000000000000000000000000f2c88757f8d03634671208935974b60a2a28bdb3, 0x0000000000000000000000000000000000000000000000000000000000000000, 000000000000000000000000a1bea5fe917450041748dbbbe7e9ac57a4bbebab, 000000000000000000000000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee, 0000000000000000000000000000000000000000000000054700ad37b4470000, 0000000000000000000000000000000000000000000000000038955476a33967, 00000000000000000000000000000000000000000000000000392732547dfe53, ffffffffffffffffffffffffffffffffffffffffffffffffffffff8cda120267 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1AA5F053...db43f2bD0 | (Uniswap V3: USDC-SHELL) | ||||
0x2E8135bE...Db0414226 | |||||
0x84cE22f3...58e4178F2 |
0.026438652776147801 Eth
Nonce: 131
|
0.041888295068046508 Eth
Nonce: 132
| 0.015449642291898707 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 13.537409211482310893 Eth | 13.537687372091027573 Eth | 0.00027816060871668 | |
0xA0b86991...E3606eB48 | |||||
0xC02aaA39...83C756Cc2 | 2,869,022.018467345971734355 Eth | 2,869,022.002380175179835648 Eth | 0.016087170791898707 | ||
0xf2c88757...a2a28Bdb3 |
Execution Trace
ApprovalProxy.transferAndMulticall( tokens=[0xf2c88757f8d03634671208935974B60a2a28Bdb3], amounts=[97350000000000000000], targets=[0xf2c88757f8d03634671208935974B60a2a28Bdb3, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAA=, , 3ZxflgAAAAAAAAAAAAAAAPLIh1f40DY0ZxIIk1l0tgoqKL2zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAAAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5J6V6a/vsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiVVHajOWcAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAswLyyIdX+NA2NGcSCJNZdLYKKii9swH//wEapfBTjn0SPTWPQ51BGCKNtD8r0AAugTW+cSMMaxtARWltQcCdsEFCJgAEoLhpkcYhizbB0Z1KLp6wzjYG60gALoE1vnEjDGsbQEVpbUHAnbBBQiYBhc0H6gFCOx6TeSm0TkrYxAu7XnEACcQBwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAA==], values=[0, 0, 0], refundTo=0x84cE22f33E099ED8858Ff40862436FB58e4178F2 ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000392732547DFE53 )
-
MyShell.transferFrom( from=0x84cE22f33E099ED8858Ff40862436FB58e4178F2, to=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, value=97350000000000000000 ) => ( True )
ERC20Router.delegatecallMulticall( targets=[0xf2c88757f8d03634671208935974B60a2a28Bdb3, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], datas=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAA=, , 3ZxflgAAAAAAAAAAAAAAAPLIh1f40DY0ZxIIk1l0tgoqKL2zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAAAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5J6V6a/vsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiVVHajOWcAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAswLyyIdX+NA2NGcSCJNZdLYKKii9swH//wEapfBTjn0SPTWPQ51BGCKNtD8r0AAugTW+cSMMaxtARWltQcCdsEFCJgAEoLhpkcYhizbB0Z1KLp6wzjYG60gALoE1vnEjDGsbQEVpbUHAnbBBQiYBhc0H6gFCOx6TeSm0TkrYxAu7XnEACcQBwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAA==], values=[0, 0, 0], refundTo=0x84cE22f33E099ED8858Ff40862436FB58e4178F2 ) => ( 0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000392732547DFE53 )
Multicaller.aggregate( targets=[0xf2c88757f8d03634671208935974B60a2a28Bdb3, 0xf70da97812CB96acDF810712Aa562db8dfA3dbEF, 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71], data=[CV6nswAAAAAAAAAAAAAAAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAA=, , 3ZxflgAAAAAAAAAAAAAAAPLIh1f40DY0ZxIIk1l0tgoqKL2zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRwCtN7RHAAAAAAAAAAAAAAAAAADu7u7u7u7u7u7u7u7u7u7u7u7u7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5J6V6a/vsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADiVVHajOWcAAAAAAAAAAAAAAAChvqX+kXRQBBdI27vn6axXpLvrqwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAswLyyIdX+NA2NGcSCJNZdLYKKii9swH//wEapfBTjn0SPTWPQ51BGCKNtD8r0AAugTW+cSMMaxtARWltQcCdsEFCJgAEoLhpkcYhizbB0Z1KLp6wzjYG60gALoE1vnEjDGsbQEVpbUHAnbBBQiYBhc0H6gFCOx6TeSm0TkrYxAu7XnEACcQBwCqqObIj/o0KDlxPJ+rZCDx1bMIB//8CAIXNB+oBQjsek3kptE5K2MQLu15xAAAAAAAAAAAAAAAAAA==], values=[0, 0, 0], refundTo=0x84cE22f33E099ED8858Ff40862436FB58e4178F2 ) => ( [AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE=, , AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADknMlR9/lM=] )
-
MyShell.approve( spender=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=97350000000000000000 ) => ( True )
-
Relay: Solver.CALL( )
0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.dd9c5f96( )
-
MyShell.balanceOf( account=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 97350000000000000000 )
-
MyShell.transferFrom( from=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, value=97350000000000000000 ) => ( True )
UniswapV3Pool.swap( recipient=0x2E8135bE71230c6B1B4045696d41C09Db0414226, zeroForOne=False, amountSpecified=97350000000000000000, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x000000000000000000000000F2C88757F8D03634671208935974B60A2A28BDB30000000000000000000000000000000000000000000000000000000000000000 ) => ( amount0=-33780518, amount1=97350000000000000000 )
FiatTokenProxy.a9059cbb( )
-
FiatTokenV2_2.transfer( to=0x2E8135bE71230c6B1B4045696d41C09Db0414226, value=33780518 ) => ( True )
-
-
MyShell.balanceOf( account=0x1AA5F0538e7D123d358f439D4118228db43f2bD0 ) => ( 45779028602941752006923 )
0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.fa461e33( )
-
MyShell.transfer( to=0x1AA5F0538e7D123d358f439D4118228db43f2bD0, value=97350000000000000000 ) => ( True )
-
-
MyShell.balanceOf( account=0x1AA5F0538e7D123d358f439D4118228db43f2bD0 ) => ( 45876378602941752006923 )
-
PancakePair.STATICCALL( )
FiatTokenProxy.70a08231( )
-
FiatTokenV2_2.balanceOf( account=0x2E8135bE71230c6B1B4045696d41C09Db0414226 ) => ( 127795937560 )
-
PancakePair.swap( amount0Out=0, amount1Out=16087170791898707, to=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, data=0x )
-
WETH9.transfer( dst=0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71, wad=16087170791898707 ) => ( True )
FiatTokenProxy.70a08231( )
-
FiatTokenV2_2.balanceOf( account=0x2E8135bE71230c6B1B4045696d41C09Db0414226 ) => ( 127795937560 )
-
-
WETH9.balanceOf( 0x2E8135bE71230c6B1B4045696d41C09Db0414226 ) => ( 60996188637383520710 )
-
-
WETH9.balanceOf( 0x85CD07Ea01423b1E937929B44E4Ad8c40BbB5E71 ) => ( 16087170791898708 )
WETH9.withdraw( wad=16087170791898707 )
- ETH 0.016087170791898707
0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
- ETH 0.016087170791898707
- ETH 0.016087170791898707
0x85cd07ea01423b1e937929b44e4ad8c40bbb5e71.CALL( )
-
MyShell.balanceOf( account=0xA1BEa5fe917450041748Dbbbe7E9AC57A4bBEBaB ) => ( 0 )
- ETH 0.016087170791898707
ERC20Router.CALL( )
-
- ETH 0.016087170791898707
0x84ce22f33e099ed8858ff40862436fb58e4178f2.CALL( )
-
transferAndMulticall[ApprovalProxy (ln:37)]
ArrayLengthsMismatch[ApprovalProxy (ln:47)]
ArrayLengthsMismatch[ApprovalProxy (ln:51)]
safeTransferFrom[ApprovalProxy (ln:55)]
delegatecallMulticall[ApprovalProxy (ln:60)]
File 1 of 9: ApprovalProxy
File 2 of 9: ERC20Router
File 3 of 9: MyShell
File 4 of 9: FiatTokenProxy
File 5 of 9: UniswapV3Pool
File 6 of 9: PancakePair
File 7 of 9: WETH9
File 8 of 9: Multicaller
File 9 of 9: FiatTokenV2_2
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 9: 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 9: MyShell
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >=0.8.0;import { IMessageLibManager } from "./IMessageLibManager.sol";import { IMessagingComposer } from "./IMessagingComposer.sol";import { IMessagingChannel } from "./IMessagingChannel.sol";import { IMessagingContext } from "./IMessagingContext.sol";struct MessagingParams {uint32 dstEid;bytes32 receiver;bytes message;bytes options;bool payInLzToken;}struct MessagingReceipt {bytes32 guid;uint64 nonce;
File 4 of 9: 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 5 of 9: UniswapV3Pool
12345678910111213141516// SPDX-License-Identifier: BUSL-1.1pragma solidity =0.7.6;import './interfaces/IUniswapV3Pool.sol';import './NoDelegateCall.sol';import './libraries/LowGasSafeMath.sol';import './libraries/SafeCast.sol';import './libraries/Tick.sol';import './libraries/TickBitmap.sol';import './libraries/Position.sol';import './libraries/Oracle.sol';import './libraries/FullMath.sol';import './libraries/FixedPoint128.sol';import './libraries/TransferHelper.sol';import './libraries/TickMath.sol';import './libraries/LiquidityMath.sol';import './libraries/SqrtPriceMath.sol';
File 6 of 9: PancakePair
12345678910111213141516/***Submitted for verification at BscScan.com on 2021-04-23*//***Submitted for verification at BscScan.com on 2021-04-22*//***Submitted for verification at BscScan.com on 2021-04-22*//***Submitted for verification at BscScan.com on 2020-09-19*/pragma solidity =0.5.16;interface IPancakeFactory {event PairCreated(address indexed token0, address indexed token1, address pair, uint);function feeTo() external view returns (address);
File 7 of 9: 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 8 of 9: 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 9 of 9: 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.