Transaction Hash:
Block:
19265148 at Feb-19-2024 11:48:59 PM +UTC
Transaction Fee:
0.004367204600262885 ETH
$13.10
Gas Used:
159,597 Gas / 27.363951705 Gwei
Emitted Events:
314 |
Permit2.Permit( owner=[Sender] 0xae3642a03a1e4bd7ab7d919d14c54ecf1bfdddd3, token=BRC20, spender=[Receiver] UniversalRouter, amount=1461501637330902918203684832716283019655932542975, expiration=1710978507, nonce=0 )
|
315 |
WETH9.Transfer( src=UniswapV3Pool, dst=[Receiver] UniversalRouter, wad=115471221210869340 )
|
316 |
BRC20.Transfer( from=[Sender] 0xae3642a03a1e4bd7ab7d919d14c54ecf1bfdddd3, to=UniswapV3Pool, value=273083694984517827573 )
|
317 |
UniswapV3Pool.Swap( sender=[Receiver] UniversalRouter, recipient=[Receiver] UniversalRouter, amount0=-115471221210869340, amount1=273083694984517827573, sqrtPriceX96=3834568977885108249617254447803, liquidity=11195852168355090072954, tick=77593 )
|
318 |
WETH9.Withdrawal( src=[Receiver] UniversalRouter, wad=115471221210869340 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x00000000...43aC78BA3 | (Uniswap Protocol: Permit2) | ||||
0xAE3642A0...f1BFdddd3 |
0.065968450828793284 Eth
Nonce: 56
|
0.177072467439399739 Eth
Nonce: 57
| 0.111104016610606455 | ||
0xB279d484...3f63b4e16
Miner
| (MEV Builder: 0xB27...e16) | 1.4576217452524458 Eth | 1.4576219000615358 Eth | 0.00000015480909 | |
0xC02aaA39...83C756Cc2 | 3,107,417.702904425873588361 Eth | 3,107,417.587433204662719021 Eth | 0.11547122121086934 | ||
0xda31D0d1...0A5e8b44F | |||||
0xe21876Af...54C1875E8 | (Uniswap V3: BSSB 2) |
Execution Trace
UniversalRouter.execute( commands=0x0A000C, inputs=[AAAAAAAAAAAAAAAA2jHQ0byTT8NPcYnjikE8oKXotE8AAAAAAAAAAAAAAAD//////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl+3XLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/yRo6/XA5XNSWxkfVpsydSyt/rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl0+/TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQRDgj8JWg2fy95Sa6nEQbYeDF6sSPSW6G7Y296UuAqkmVCtqcf5vvuzsXI33RGMpPLZKLmZVeQu8Th+hZC1G680cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA7NzC26n0679QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJrxhyw693AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr2jHQ0byTT8NPcYnjikE8oKXotE8AJxDAKqo5siP+jQoOXE8n6tkIPHVswgAAAAAAAAAAAAAAAAAAAAAAAAAAAA==, AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABia8YcsOvdw==], deadline=1708387103 )
Permit2.permit( owner=0xAE3642A03a1e4bd7AB7D919d14C54ECf1BFdddd3, permitSingle=[{name:details, type:tuple, order:1, indexed:false, value:[{name:token, type:address, order:1, indexed:false, value:0xda31D0d1Bc934fC34F7189E38A413ca0A5e8b44F, valueString:0xda31D0d1Bc934fC34F7189E38A413ca0A5e8b44F}, {name:amount, type:uint160, order:2, indexed:false, value:1461501637330902918203684832716283019655932542975, valueString:1461501637330902918203684832716283019655932542975}, {name:expiration, type:uint48, order:3, indexed:false, value:1710978507, valueString:1710978507}, {name:nonce, type:uint48, order:4, indexed:false, value:0, valueString:0}], valueString:[{name:token, type:address, order:1, indexed:false, value:0xda31D0d1Bc934fC34F7189E38A413ca0A5e8b44F, valueString:0xda31D0d1Bc934fC34F7189E38A413ca0A5e8b44F}, {name:amount, type:uint160, order:2, indexed:false, value:1461501637330902918203684832716283019655932542975, valueString:1461501637330902918203684832716283019655932542975}, {name:expiration, type:uint48, order:3, indexed:false, value:1710978507, valueString:1710978507}, {name:nonce, type:uint48, order:4, indexed:false, value:0, valueString:0}]}, {name:spender, type:address, order:2, indexed:false, value:0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, valueString:0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD}, {name:sigDeadline, type:uint256, order:3, indexed:false, value:1708388307, valueString:1708388307}], signature=0x10E08FC2568367F2F7949AEA71106D878317AB123D25BA1BB636F7A52E02A926542B6A71FE6FBEECEC5C8DF74463293CB64A2E6655790BBC4E1FA1642D46EBCD1C )
-
Null: 0x000...001.2e794cd9( )
-
UniswapV3Pool.swap( recipient=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, zeroForOne=False, amountSpecified=273083694984517827573, sqrtPriceLimitX96=1461446703485210103287273052203988822378723970341, data=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000AE3642A03A1E4BD7AB7D919D14C54ECF1BFDDDD3000000000000000000000000000000000000000000000000000000000000002BDA31D0D1BC934FC34F7189E38A413CA0A5E8B44F002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 ) => ( amount0=-115471221210869340, amount1=273083694984517827573 )
-
WETH9.transfer( dst=0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD, wad=115471221210869340 ) => ( True )
-
BRC20.balanceOf( 0xe21876Afd4C632b22870DF250E5Df1754C1875E8 ) => ( 1015589415013444913185332 )
UniversalRouter.uniswapV3SwapCallback( amount0Delta=-115471221210869340, amount1Delta=273083694984517827573, data=0x0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000AE3642A03A1E4BD7AB7D919D14C54ECF1BFDDDD3000000000000000000000000000000000000000000000000000000000000002BDA31D0D1BC934FC34F7189E38A413CA0A5E8B44F002710C02AAA39B223FE8D0A0E5C4F27EAD9083C756CC2000000000000000000000000000000000000000000 )
Permit2.transferFrom( from=0xAE3642A03a1e4bd7AB7D919d14C54ECf1BFdddd3, to=0xe21876Afd4C632b22870DF250E5Df1754C1875E8, amount=273083694984517827573, token=0xda31D0d1Bc934fC34F7189E38A413ca0A5e8b44F )
-
BRC20.transferFrom( from=0xAE3642A03a1e4bd7AB7D919d14C54ECf1BFdddd3, to=0xe21876Afd4C632b22870DF250E5Df1754C1875E8, amount=273083694984517827573 ) => ( True )
-
-
BRC20.balanceOf( 0xe21876Afd4C632b22870DF250E5Df1754C1875E8 ) => ( 1015862498708429431012905 )
-
-
WETH9.balanceOf( 0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD ) => ( 115471221210869340 )
WETH9.withdraw( wad=115471221210869340 )
- ETH 0.11547122121086934
UniversalRouter.CALL( )
- ETH 0.11547122121086934
- ETH 0.11547122121086934
0xae3642a03a1e4bd7ab7d919d14c54ecf1bfdddd3.CALL( )
execute[UniversalRouter (ln:16)]
execute[UniversalRouter (ln:21)]
execute[UniversalRouter (ln:21)]
File 1 of 5: UniversalRouter
File 2 of 5: Permit2
File 3 of 5: UniswapV3Pool
File 4 of 5: WETH9
File 5 of 5: BRC20
12345678910111213141516// SPDX-License-Identifier: GPL-3.0-or-laterpragma solidity ^0.8.17;// Command implementationsimport {Dispatcher} from './base/Dispatcher.sol';import {RewardsCollector} from './base/RewardsCollector.sol';import {RouterParameters, RouterImmutables} from './base/RouterImmutables.sol';import {Commands} from './libraries/Commands.sol';import {IUniversalRouter} from './interfaces/IUniversalRouter.sol';contract UniversalRouter is RouterImmutables, IUniversalRouter, Dispatcher, RewardsCollector {modifier checkDeadline(uint256 deadline) {if (block.timestamp > deadline) revert TransactionDeadlinePassed();_;}constructor(RouterParameters memory params) RouterImmutables(params) {}/// @inheritdoc IUniversalRouterfunction execute(bytes calldata commands, bytes[] calldata inputs, uint256 deadline)
File 2 of 5: Permit2
12345678910111213141516// SPDX-License-Identifier: AGPL-3.0-onlypragma solidity >=0.8.0;/// @notice Modern and gas efficient ERC20 + EIP-2612 implementation./// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)/// @author Modified from Uniswap (https://github.com/Uniswap/uniswap-v2-core/blob/master/contracts/UniswapV2ERC20.sol)/// @dev Do not manually set balances without updating totalSupply, as the sum of all user balances must not exceed it.abstract contract ERC20 {/*//////////////////////////////////////////////////////////////EVENTS//////////////////////////////////////////////////////////////*/event Transfer(address indexed from, address indexed to, uint256 amount);event Approval(address indexed owner, address indexed spender, uint256 amount);/*//////////////////////////////////////////////////////////////METADATA STORAGE//////////////////////////////////////////////////////////////*/string public name;
File 3 of 5: 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 5: 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 5: BRC20
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity ^0.8.0;import "./interfaces/IBRC20Factory.sol";contract BRC20 {string public name;string public symbol;uint8 public immutable decimals;address public immutable factory;uint256 public totalSupply;mapping (address => uint256) public balanceOf;mapping (address => mapping(address => uint256)) public allowance;mapping (address => uint256) public nonces;bytes32 public DOMAIN_SEPARATOR;bytes32 public constant PERMIT_TYPEHASH = keccak256("Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)");bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)");event Approval(address indexed owner, address indexed spender, uint256 value);