Transaction Hash:
Block:
22688457 at Jun-12-2025 12:22:23 PM +UTC
Transaction Fee:
0.000710334661083734 ETH
$2.75
Gas Used:
134,789 Gas / 5.269975006 Gwei
Emitted Events:
77 |
WETH9.Transfer( src=UniswapV3Pool, dst=[Receiver] OpenOceanExchangeProxy, wad=28888394074925772 )
|
78 |
TransparentUpgradeableProxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x000000000000000000000000f892f3764890412fed83a2ce6874edec09beef8f, 0x000000000000000000000000059615ebf32c946aaab3d44491f78e4f8e97e1d3, 00000000000000000000000000000000000000000000000000622eb1b81ee2a0 )
|
79 |
UniswapV3Pool.Swap( sender=[Receiver] OpenOceanExchangeProxy, recipient=[Receiver] OpenOceanExchangeProxy, amount0=27635888550765216, amount1=-28888394074925772, sqrtPriceX96=81023419839962763817327625017, liquidity=2360907082923504959019, tick=448 )
|
80 |
WETH9.Withdrawal( src=[Receiver] OpenOceanExchangeProxy, wad=28888394074925772 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x059615EB...F8e97e1D3 | (Uniswap V3: rsETH 3) | ||||
0x6Adb3baB...16393C200
Miner
| (MEV Builder: 0x6adb...200) | 4.830715449140128829 Eth | 4.830850238140128829 Eth | 0.000134789 | |
0x922164BB...949fCAEef | 0.636305460140557966 Eth | 0.636334640336593245 Eth | 0.000029180196035279 | ||
0xA1290d69...5cB99e5A7 | |||||
0xC02aaA39...83C756Cc2 | 2,622,087.090967498786356352 Eth | 2,622,087.06207910471143058 Eth | 0.028888394074925772 | ||
0xF892f376...C09beeF8f |
0.016942851231395865 Eth
Nonce: 8
|
0.045091730449202624 Eth
Nonce: 9
| 0.028148879217806759 |
Execution Trace
OpenOceanExchangeProxy.bc80f1a8( )
OpenOceanExchange.uniswapV3SwapTo( recipient=0xF892f3764890412FEd83A2cE6874eDeC09beeF8f, amount=27635888550765216, minReturn=28570621740101589, pools=[14474701329299203484325116601704108159485486652865548622000977374221579051475] ) => ( returnAmount=28888394074925772 )
UniswapV3Pool.swap( recipient=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, zeroForOne=True, amountSpecified=27635888550765216, sqrtPriceLimitX96=4295128740, data=0x000000000000000000000000F892F3764890412FED83A2CE6874EDEC09BEEF8F ) => ( amount0=27635888550765216, amount1=-28888394074925772 )
-
WETH9.transfer( dst=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, wad=28888394074925772 ) => ( True )
TransparentUpgradeableProxy.70a08231( )
-
RSETH.balanceOf( account=0x059615EBf32C946aaab3D44491f78e4F8e97e1D3 ) => ( 7191274904323437385 )
-
OpenOceanExchangeProxy.fa461e33( )
OpenOceanExchange.uniswapV3SwapCallback( amount0Delta=27635888550765216, amount1Delta=-28888394074925772, 0x000000000000000000000000F892F3764890412FED83A2CE6874EDEC09BEEF8F )
-
UniswapV3Pool.STATICCALL( )
-
UniswapV3Pool.STATICCALL( )
-
UniswapV3Pool.STATICCALL( )
TransparentUpgradeableProxy.23b872dd( )
-
RSETH.transferFrom( from=0xF892f3764890412FEd83A2cE6874eDeC09beeF8f, to=0x059615EBf32C946aaab3D44491f78e4F8e97e1D3, amount=27635888550765216 ) => ( True )
-
-
TransparentUpgradeableProxy.70a08231( )
-
RSETH.balanceOf( account=0x059615EBf32C946aaab3D44491f78e4F8e97e1D3 ) => ( 7218910792874202601 )
-
-
-
UniswapV3Pool.STATICCALL( )
WETH9.withdraw( wad=28888394074925772 )
ETH 0.028888394074925772
OpenOceanExchangeProxy.CALL( )
- ETH 0.028888394074925772
OpenOceanExchange.DELEGATECALL( )
- ETH 0.028888394074925772
- ETH 0.028859213878890493
0xf892f3764890412fed83a2ce6874edec09beef8f.CALL( )
- ETH 0.000029180196035279
0x922164bbbd36acf9e854acbbf32facc949fcaeef.CALL( )
uniswapV3SwapTo[UniswapV3Exchange (ln:3389)]
_uniswapV3Swap[UniswapV3Exchange (ln:3395)]
deposit[UniswapV3Exchange (ln:3414)]
_makeSwap[UniswapV3Exchange (ln:3419)]
_makeSwap[UniswapV3Exchange (ln:3421)]
_makeSwap[UniswapV3Exchange (ln:3423)]
_makeSwap[UniswapV3Exchange (ln:3425)]
File 1 of 6: OpenOceanExchangeProxy
File 2 of 6: UniswapV3Pool
File 3 of 6: WETH9
File 4 of 6: TransparentUpgradeableProxy
File 5 of 6: OpenOceanExchange
File 6 of 6: RSETH
12345678910111213141516// File: @openzeppelin/contracts/proxy/Proxy.sol// SPDX-License-Identifier: MITpragma 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.*/
File 2 of 6: 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 3 of 6: 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 6: TransparentUpgradeableProxy
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)pragma solidity ^0.8.0;import "../ERC1967/ERC1967Proxy.sol";/*** @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}* does not implement this interface directly, and some of its functions are implemented by an internal dispatch* mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not* include them in the ABI so this interface must be used to interact with it.*/interface ITransparentUpgradeableProxy is IERC1967 {function admin() external view returns (address);function implementation() external view returns (address);function changeAdmin(address) external;function upgradeTo(address) external;function upgradeToAndCall(address, bytes memory) external payable;
File 5 of 6: OpenOceanExchange
12345678910111213141516// 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]* ====
File 6 of 6: RSETH
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v4.9.0) (proxy/utils/Initializable.sol)pragma solidity ^0.8.2;import "../../utils/AddressUpgradeable.sol";/*** @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed* behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an* external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer* function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.** The initialization functions use a version number. Once a version number is used, it is consumed and cannot be* reused. This mechanism prevents re-execution of each "step" but allows the creation of new initialization steps in* case an upgrade adds a module that needs to be initialized.** For example:*