Transaction Hash:
Block:
22718051 at Jun-16-2025 03:43:23 PM +UTC
Transaction Fee:
0.000710503301094304 ETH
$2.67
Gas Used:
152,288 Gas / 4.665523883 Gwei
Emitted Events:
259 |
WETH9.Transfer( src=UniswapV3Pool, dst=[Receiver] OpenOceanExchangeProxy, wad=171224401618477728 )
|
260 |
ERC1967Proxy.0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef( 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef, 0x0000000000000000000000001c165ce53e9c5af5e9296f2756c358082b1f7671, 0x000000000000000000000000c7ec87aeb9d1129c42123859220c525aba1ca617, 000000000000000000000000000000000000000000000000000029d635a8e000 )
|
261 |
UniswapV3Pool.Swap( sender=[Receiver] OpenOceanExchangeProxy, recipient=[Receiver] OpenOceanExchangeProxy, amount0=46000000000000, amount1=-171224401618477728, sqrtPriceX96=4829387038534008802923018785202, liquidity=582910915141664294, tick=82206 )
|
262 |
WETH9.Withdrawal( src=[Receiver] OpenOceanExchangeProxy, wad=171224401618477728 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1c165CE5...82B1f7671 |
2.644363392010853126 Eth
Nonce: 342
|
2.814705205502489336 Eth
Nonce: 343
| 0.17034181349163621 | ||
0x675B68AA...B7192079c | |||||
0x922164BB...949fCAEef | 0.724653591057937826 Eth | 0.72482567588368504 Eth | 0.000172084825747214 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 6.29061191839820504 Eth | 6.29091649439820504 Eth | 0.000304576 | |
0xC02aaA39...83C756Cc2 | 2,617,157.87368686456717834 Eth | 2,617,157.702462462948700612 Eth | 0.171224401618477728 | ||
0xC7eC87AE...aBa1ca617 | (Uniswap V3: FUEL 6) |
Execution Trace
OpenOceanExchangeProxy.bc80f1a8( )
OpenOceanExchange.uniswapV3SwapTo( recipient=0x1c165CE53E9C5af5E9296f2756C358082B1f7671, amount=46000000000000, minReturn=170197055208766862, pools=[14474356241981863956135744865020466291806893309641124493134283807209411094039] ) => ( returnAmount=171224401618477728 )
UniswapV3Pool.swap( recipient=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, zeroForOne=True, amountSpecified=46000000000000, sqrtPriceLimitX96=4295128740, data=0x0000000000000000000000001C165CE53E9C5AF5E9296F2756C358082B1F7671 ) => ( amount0=46000000000000, amount1=-171224401618477728 )
-
WETH9.transfer( dst=0x6352a56caadC4F1E25CD6c75970Fa768A3304e64, wad=171224401618477728 ) => ( True )
ERC1967Proxy.70a08231( )
-
Token.balanceOf( account=0xC7eC87AEB9D1129C42123859220C525aBa1ca617 ) => ( 11032003100201640 )
-
OpenOceanExchangeProxy.fa461e33( )
OpenOceanExchange.uniswapV3SwapCallback( amount0Delta=46000000000000, amount1Delta=-171224401618477728, 0x0000000000000000000000001C165CE53E9C5AF5E9296F2756C358082B1F7671 )
-
UniswapV3Pool.STATICCALL( )
-
UniswapV3Pool.STATICCALL( )
-
UniswapV3Pool.STATICCALL( )
ERC1967Proxy.23b872dd( )
-
Token.transferFrom( from=0x1c165CE53E9C5af5E9296f2756C358082B1f7671, to=0xC7eC87AEB9D1129C42123859220C525aBa1ca617, value=46000000000000 ) => ( True )
-
-
ERC1967Proxy.70a08231( )
-
Token.balanceOf( account=0xC7eC87AEB9D1129C42123859220C525aBa1ca617 ) => ( 11078003100201640 )
-
-
-
UniswapV3Pool.STATICCALL( )
WETH9.withdraw( wad=171224401618477728 )
ETH 0.171224401618477728
OpenOceanExchangeProxy.CALL( )
- ETH 0.171224401618477728
OpenOceanExchange.DELEGATECALL( )
- ETH 0.171224401618477728
- ETH 0.171052316792730514
0x1c165ce53e9c5af5e9296f2756c358082b1f7671.CALL( )
- ETH 0.000172084825747214
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: ERC1967Proxy
File 5 of 6: OpenOceanExchange
File 6 of 6: Token
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: ERC1967Proxy
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)pragma solidity ^0.8.20;import {Context} from "../utils/Context.sol";/*** @dev Contract module which provides a basic access control mechanism, where* there is an account (an owner) that can be granted exclusive access to* specific functions.** The initial owner is set to the address provided by the deployer. This can* later be changed with {transferOwnership}.** This module is used through inheritance. It will make available the modifier* `onlyOwner`, which can be applied to your functions to restrict their use to* the owner.*/
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: Token
12345678910111213141516// SPDX-License-Identifier: MIT// OpenZeppelin Contracts (last updated v5.0.0) (access/AccessControl.sol)pragma solidity ^0.8.20;import {IAccessControl} from "@openzeppelin/contracts/access/IAccessControl.sol";import {ContextUpgradeable} from "../utils/ContextUpgradeable.sol";import {ERC165Upgradeable} from "../utils/introspection/ERC165Upgradeable.sol";import {Initializable} from "../proxy/utils/Initializable.sol";/*** @dev Contract module that allows children to implement role-based access* control mechanisms. This is a lightweight version that doesn't allow enumerating role* members except through off-chain means by accessing the contract event logs. Some* applications may benefit from on-chain enumerability, for those cases see* {AccessControlEnumerable}.** Roles are referred to by their `bytes32` identifier. These should be exposed* in the external API and be unique. The best way to achieve this is by