ETH Price: $2,761.17 (-1.30%)

Transaction Decoder

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 Code
0x79F05c26...0CAA10e0c
(beaverbuild)
15.916237273411610654 Eth15.916548898880905214 Eth0.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 )
            File 1 of 7: SwapRouter02
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // SPDX-License-Identifier: GPL-2.0-or-later
            pragma 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 Router
            contract SwapRouter02 is ISwapRouter02, V2SwapRouter, V3SwapRouter, ApproveAndCall, MulticallExtended, SelfPermit {
            constructor(
            address _factoryV2,
            address factoryV3,
            address _positionManager,
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 2 of 7: BridgeToken
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // File: @openzeppelin/contracts/proxy/beacon/IBeacon.sol
            // SPDX-License-Identifier: MIT
            pragma 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);
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 3 of 7: UniswapV3Pool
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // SPDX-License-Identifier: BUSL-1.1
            pragma 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';
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 4 of 7: WETH9
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // 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;
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 5 of 7: TokenBridge
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // contracts/Wormhole.sol
            // SPDX-License-Identifier: Apache 2
            pragma 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: MIT
            pragma solidity ^0.8.0;
            import "../Proxy.sol";
            import "./ERC1967Upgrade.sol";
            /**
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 6 of 7: BridgeImplementation
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // contracts/Implementation.sol
            // SPDX-License-Identifier: Apache 2
            pragma 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 contracts
            function 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();
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

            File 7 of 7: TokenImplementation
            1
            2
            3
            4
            5
            6
            7
            8
            9
            10
            11
            12
            13
            14
            15
            16
            // SPDX-License-Identifier: Apache 2
            // File: @openzeppelin/contracts/utils/Counters.sol
            pragma 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 {
            XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX