Transaction Hash:
Block:
22317138 at Apr-21-2025 11:40:23 AM +UTC
Transaction Fee:
0.0003587328 ETH
$0.99
Gas Used:
124,560 Gas / 2.88 Gwei
Emitted Events:
243 |
BridgeToken.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000e6a74d31f1ea6719cf9ee14e3b779f793e997f39, 0x000000000000000000000000bbb5008da7ef90a416a4389fdad3872d6896cff9, 0000000000000000000000000000000000000000000007987d2460abfdbbfc0e )
|
244 |
WETH9.Transfer( src=[Sender] 0xbbb5008da7ef90a416a4389fdad3872d6896cff9, dst=UniswapV3Pool, wad=93500000000000000 )
|
245 |
UniswapV3Pool.Swap( sender=[Receiver] SwapRouter02, recipient=[Sender] 0xbbb5008da7ef90a416a4389fdad3872d6896cff9, amount0=-35869487917937083546638, amount1=93500000000000000, sqrtPriceX96=127826362461515408681212600, liquidity=35870683493362346374733, tick=-128595 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x79F05c26...0CAA10e0c | |||||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 15.916237273411610654 Eth | 15.916548898880905214 Eth | 0.00031162546929456 | |
0xbbb5008D...D6896CFf9 |
0.187075616546134522 Eth
Nonce: 9400
|
0.186716883746134522 Eth
Nonce: 9401
| 0.0003587328 | ||
0xC02aaA39...83C756Cc2 | |||||
0xE6a74D31...93e997F39 | (Uniswap V3: ICE 4) |
Execution Trace
SwapRouter02.exactInputSingle( params=[{name:tokenIn, type:address, order:1, indexed:false, value:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, valueString:0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2}, {name:tokenOut, type:address, order:2, indexed:false, value:0x79F05c263055BA20EE0e814ACD117C20CAA10e0c, valueString:0x79F05c263055BA20EE0e814ACD117C20CAA10e0c}, {name:fee, type:uint24, order:3, indexed:false, value:3000, valueString:3000}, {name:recipient, type:address, order:4, indexed:false, value:0xbbb5008Da7eF90A416a4389fdad3872D6896CFf9, valueString:0xbbb5008Da7eF90A416a4389fdad3872D6896CFf9}, {name:amountIn, type:uint256, order:5, indexed:false, value:93500000000000000, valueString:93500000000000000}, {name:amountOutMinimum, type:uint256, order:6, indexed:false, value:35842300000000000000000, valueString:35842300000000000000000}, {name:sqrtPriceLimitX96, type:uint160, order:7, indexed:false, value:0, valueString:0}] ) => ( amountOut=35869487917937083546638 )
UniswapV3Pool.swap( recipient=0xbbb5008Da7eF90A416a4389fdad3872D6896CFf9, zeroForOne=False, amountSpecified=93500000000000000, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000BBB5008DA7EF90A416A4389FDAD3872D6896CFF9000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000BB879F05C263055BA20EE0E814ACD117C20CAA10E0C000000000000000000000000000000000000000000 ) => ( amount0=-35869487917937083546638, amount1=93500000000000000 )
BridgeToken.a9059cbb( )
TokenBridge.STATICCALL( )
-
BridgeImplementation.DELEGATECALL( )
-
-
TokenImplementation.transfer( recipient_=0xbbb5008Da7eF90A416a4389fdad3872D6896CFf9, amount_=35869487917937083546638 ) => ( True )
-
WETH9.balanceOf( 0xE6a74D31f1Ea6719cf9ee14e3B779f793e997F39 ) => ( 26284194454415562896 )
SwapRouter02.uniswapV3SwapCallback( amount0Delta=-35869487917937083546638, amount1Delta=93500000000000000, _data=0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000BBB5008DA7EF90A416A4389FDAD3872D6896CFF9000000000000000000000000000000000000000000000000000000000000002BC02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000BB879F05C263055BA20EE0E814ACD117C20CAA10E0C000000000000000000000000000000000000000000 )
-
WETH9.transferFrom( src=0xbbb5008Da7eF90A416a4389fdad3872D6896CFf9, dst=0xE6a74D31f1Ea6719cf9ee14e3B779f793e997F39, wad=93500000000000000 ) => ( True )
-
-
WETH9.balanceOf( 0xE6a74D31f1Ea6719cf9ee14e3B779f793e997F39 ) => ( 26377694454415562896 )
exactInputSingle[V3SwapRouter (ln:272)]
balanceOf[V3SwapRouter (ln:282)]
exactInputInternal[V3SwapRouter (ln:284)]
decodeFirstPool[V3SwapRouter (ln:257)]
swap[V3SwapRouter (ln:260)]
getPool[V3SwapRouter (ln:260)]
computeAddress[V3SwapRouter (ln:213)]
encode[PoolAddress (ln:1806)]
getPoolKey[V3SwapRouter (ln:213)]
PoolKey[PoolAddress (ln:1792)]
toInt256[V3SwapRouter (ln:263)]
encode[V3SwapRouter (ln:267)]
SwapCallbackData[V3SwapRouter (ln:288)]
File 1 of 7: SwapRouter02
File 2 of 7: BridgeToken
File 3 of 7: UniswapV3Pool
File 4 of 7: WETH9
File 5 of 7: TokenBridge
File 6 of 7: BridgeImplementation
File 7 of 7: TokenImplementation
12345678910111213141516// SPDX-License-Identifier: GPL-2.0-or-laterpragma solidity =0.7.6;pragma abicoder v2;import '@uniswap/v3-periphery/contracts/base/SelfPermit.sol';import '@uniswap/v3-periphery/contracts/base/PeripheryImmutableState.sol';import './interfaces/ISwapRouter02.sol';import './V2SwapRouter.sol';import './V3SwapRouter.sol';import './base/ApproveAndCall.sol';import './base/MulticallExtended.sol';/// @title Uniswap V2 and V3 Swap Routercontract SwapRouter02 is ISwapRouter02, V2SwapRouter, V3SwapRouter, ApproveAndCall, MulticallExtended, SelfPermit {constructor(address _factoryV2,address factoryV3,address _positionManager,
File 2 of 7: BridgeToken
12345678910111213141516// File: @openzeppelin/contracts/proxy/beacon/IBeacon.sol// SPDX-License-Identifier: MITpragma solidity ^0.8.0;/*** @dev This is the interface that {BeaconProxy} expects of its beacon.*/interface IBeacon {/*** @dev Must return an address that can be used as a delegate call target.** {BeaconProxy} will check that this address is a contract.*/function implementation() external view returns (address);
File 3 of 7: 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 4 of 7: 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 7: TokenBridge
12345678910111213141516// contracts/Wormhole.sol// SPDX-License-Identifier: Apache 2pragma solidity ^0.8.0;import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol";contract TokenBridge is ERC1967Proxy {constructor (address implementation, bytes memory initData)ERC1967Proxy(implementation,initData){}}// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "../Proxy.sol";import "./ERC1967Upgrade.sol";/**
File 6 of 7: BridgeImplementation
12345678910111213141516// contracts/Implementation.sol// SPDX-License-Identifier: Apache 2pragma solidity ^0.8.0;pragma experimental ABIEncoderV2;import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Upgrade.sol";import "./Bridge.sol";contract BridgeImplementation is Bridge {// Beacon getter for the token contractsfunction implementation() public view returns (address) {return tokenImplementation();}function initialize() initializer public virtual {// this function needs to be exposed for an upgrade to pass}modifier initializer() {address impl = ERC1967Upgrade._getImplementation();
File 7 of 7: TokenImplementation
12345678910111213141516// SPDX-License-Identifier: Apache 2// File: @openzeppelin/contracts/utils/Counters.solpragma solidity ^0.8.0;/*** @title Counters* @author Matt Condon (@shrugs)* @dev Provides counters that can only be incremented, decremented or reset. This can be used e.g. to track the number* of elements in a mapping, issuing ERC721 ids, or counting request ids.** Include with `using Counters for Counters.Counter;`*/library Counters {struct Counter {