ETH Price: $3,538.99 (+1.98%)

Transaction Decoder

Block:
22710447 at Jun-15-2025 02:11:11 PM +UTC
Transaction Fee:
0.0002009872815544 ETH $0.71
Gas Used:
210,740 Gas / 0.95372156 Gwei

Emitted Events:

33 WETH9.Transfer( src=UniswapV3Pool, dst=[Receiver] OpenOceanExchangeProxy, wad=51219199695970133 )
34 TokenOFT.Approval( owner=[Sender] 0x03314385109cd2036de2488fe0336479b9edd622, spender=[Receiver] OpenOceanExchangeProxy, value=19997796772106204319399153658 )
35 TokenOFT.Transfer( from=[Sender] 0x03314385109cd2036de2488fe0336479b9edd622, to=UniswapV3Pool, value=15000308752473804606033 )
36 UniswapV3Pool.Swap( sender=[Receiver] OpenOceanExchangeProxy, recipient=[Receiver] OpenOceanExchangeProxy, amount0=15000308752473804606033, amount1=-51219199695970133, sqrtPriceX96=146408024320573065131767772, liquidity=9488047276630542733493, tick=-125881 )
37 TetherToken.Transfer( from=UniswapV3Pool, to=[Receiver] OpenOceanExchangeProxy, value=130341952 )
38 WETH9.Transfer( src=[Receiver] OpenOceanExchangeProxy, dst=UniswapV3Pool, wad=51219199695970133 )
39 UniswapV3Pool.Swap( sender=[Receiver] OpenOceanExchangeProxy, recipient=[Receiver] OpenOceanExchangeProxy, amount0=51219199695970133, amount1=-130341952, sqrtPriceX96=3996925906534182934077797, liquidity=610428923218116776, tick=-197902 )
40 TetherToken.Transfer( from=[Receiver] OpenOceanExchangeProxy, to=[Sender] 0x03314385109cd2036de2488fe0336479b9edd622, value=130261402 )
41 TetherToken.Transfer( from=[Receiver] OpenOceanExchangeProxy, to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, value=80550 )

Account State Difference:

  Address   Before After State Difference Code
0x03314385...9b9eDD622
0.979257490687535822 Eth
Nonce: 2680
0.979056503405981422 Eth
Nonce: 2681
0.0002009872815544
(Titan Builder)
16.244395028562671343 Eth16.244398386144002943 Eth0.0000033575813316
0x580E933D...67eB85B4c
0x715a3cEA...87e8C6D77
(Uniswap V3: GSWIFT)
0xC02aaA39...83C756Cc2
0xc7bBeC68...9bA1b0e9b
(Uniswap V3: USDT 9)
0xdAC17F95...13D831ec7

Execution Trace

OpenOceanExchangeProxy.bc80f1a8( )
  • OpenOceanExchange.uniswapV3SwapTo( recipient=0x03314385109CD2036dE2488Fe0336479b9eDD622, amount=15000308752473804606033, minReturn=130131141, pools=[69017463467905637874348205751101045008844550854202556420866777742601591, 1140279996912942340220498878376233146590653255323] ) => ( returnAmount=130341952 )
    • UniswapV3Pool.swap( recipient=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, zeroForOne=True, amountSpecified=15000308752473804606033, sqrtPriceLimitX96=4295128740, data=0x00000000000000000000000003314385109CD2036DE2488FE0336479B9EDD622 ) => ( amount0=15000308752473804606033, amount1=-51219199695970133 )
      • WETH9.transfer( dst=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, wad=51219199695970133 ) => ( True )
      • TokenOFT.balanceOf( account=0x715a3cEAc0D039d674F50b07804592e87e8C6D77 ) => ( 5387388433247707332897042 )
      • OpenOceanExchangeProxy.fa461e33( )
        • OpenOceanExchange.uniswapV3SwapCallback( amount0Delta=15000308752473804606033, amount1Delta=-51219199695970133, 0x00000000000000000000000003314385109CD2036DE2488FE0336479B9EDD622 )
          • UniswapV3Pool.STATICCALL( )
          • UniswapV3Pool.STATICCALL( )
          • UniswapV3Pool.STATICCALL( )
          • TokenOFT.transferFrom( from=0x03314385109CD2036dE2488Fe0336479b9eDD622, to=0x715a3cEAc0D039d674F50b07804592e87e8C6D77, amount=15000308752473804606033 ) => ( True )
          • TokenOFT.balanceOf( account=0x715a3cEAc0D039d674F50b07804592e87e8C6D77 ) => ( 5402388742000181137503075 )
          • UniswapV3Pool.STATICCALL( )
          • UniswapV3Pool.swap( recipient=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, zeroForOne=True, amountSpecified=51219199695970133, sqrtPriceLimitX96=4295128740, data=0x0000000000000000000000006352A56CAADC4F1E25CD6C75970FA768A3304E64 ) => ( amount0=51219199695970133, amount1=-130341952 )
            • TetherToken.transfer( _to=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, _value=130341952 )
            • WETH9.balanceOf( 0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b ) => ( 1385057542390920237101 )
            • OpenOceanExchangeProxy.fa461e33( )
              • OpenOceanExchange.uniswapV3SwapCallback( amount0Delta=51219199695970133, amount1Delta=-130341952, 0x0000000000000000000000006352A56CAADC4F1E25CD6C75970FA768A3304E64 )
                • UniswapV3Pool.STATICCALL( )
                • UniswapV3Pool.STATICCALL( )
                • UniswapV3Pool.STATICCALL( )
                • WETH9.transfer( dst=0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b, wad=51219199695970133 ) => ( True )
                • WETH9.balanceOf( 0xc7bBeC68d12a0d1830360F8Ec58fA599bA1b0e9b ) => ( 1385108761590616207234 )
                • UniswapV3Pool.STATICCALL( )
                • TetherToken.transfer( _to=0x03314385109CD2036dE2488Fe0336479b9eDD622, _value=130261402 )
                • TetherToken.transfer( _to=0x922164BBBd36Acf9E854AcBbF32faCC949fCAEef, _value=80550 )
                  uniswapV3SwapTo[UniswapV3Exchange (ln:3389)]
                  File 1 of 7: OpenOceanExchangeProxy
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // File: @openzeppelin/contracts/proxy/Proxy.sol
                  // SPDX-License-Identifier: MIT
                  pragma solidity >=0.6.0 <0.8.0;
                  /**
                  * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM
                  * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to
                  * be specified by overriding the virtual {_implementation} function.
                  *
                  * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a
                  * different contract through the {_delegate} function.
                  *
                  * The success and return data of the delegated call will be returned back to the caller of the proxy.
                  */
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 2 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 3 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 4 of 7: TokenOFT
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  // SPDX-License-Identifier: MIT
                  pragma solidity >=0.5.0;
                  import "./ILayerZeroUserApplicationConfig.sol";
                  interface ILayerZeroEndpoint is ILayerZeroUserApplicationConfig {
                  // @notice send a LayerZero message to the specified address at a LayerZero endpoint.
                  // @param _dstChainId - the destination chain identifier
                  // @param _destination - the address on destination chain (in bytes). address length/format may vary by chains
                  // @param _payload - a custom bytes payload to send to the destination contract
                  // @param _refundAddress - if the source transaction is cheaper than the amount of value passed, refund the additional amount to this address
                  // @param _zroPaymentAddress - the address of the ZRO token holder who would pay for the transaction
                  // @param _adapterParams - parameters for custom functionality. e.g. receive airdropped native gas from the relayer on destination
                  function send(uint16 _dstChainId, bytes calldata _destination, bytes calldata _payload, address payable _refundAddress, address
                          _zroPaymentAddress, bytes calldata _adapterParams) external payable;
                  // @notice used by the messaging library to publish verified payload
                  // @param _srcChainId - the source chain identifier
                  // @param _srcAddress - the source contract (as bytes) at the source chain
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 5 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 6 of 7: TetherToken
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  pragma solidity ^0.4.17;
                  /**
                  * @title SafeMath
                  * @dev Math operations with safety checks that throw on error
                  */
                  library SafeMath {
                  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
                  if (a == 0) {
                  return 0;
                  }
                  uint256 c = a * b;
                  assert(c / a == b);
                  return c;
                  }
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

                  File 7 of 7: OpenOceanExchange
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  12
                  13
                  14
                  15
                  16
                  // File: @openzeppelin/contracts-upgradeable/utils/AddressUpgradeable.sol
                  // SPDX-License-Identifier: MIT
                  // OpenZeppelin Contracts (last updated v4.8.0) (utils/Address.sol)
                  pragma solidity ^0.8.1;
                  /**
                  * @dev Collection of functions related to the address type
                  */
                  library AddressUpgradeable {
                  /**
                  * @dev Returns true if `account` is a contract.
                  *
                  * [IMPORTANT]
                  * ====
                  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX