Transaction Hash:
Block:
22549355 at May-24-2025 01:12:59 AM +UTC
Transaction Fee:
0.000155689220358396 ETH
$0.39
Gas Used:
202,889 Gas / 0.767361564 Gwei
Emitted Events:
270 |
L1ChugSplashProxy.0x2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631( 0x2ac69ee804d9a7a0984249f508dfab7cb2534b465b6ce1580f99a38ba9c5e631, 0x0000000000000000000000007ceb27b4fa424e842c23c7019c1f3604f440f2b4, 0x0000000000000000000000007ceb27b4fa424e842c23c7019c1f3604f440f2b4, 00000000000000000000000000000000000000000000000000157e7164e42000, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
|
271 |
L1ChugSplashProxy.0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d( 0x31b2166ff604fc5672ea5df08a78081d2bc6d746cadce880747f3643d819e83d, 0x0000000000000000000000007ceb27b4fa424e842c23c7019c1f3604f440f2b4, 0x0000000000000000000000007ceb27b4fa424e842c23c7019c1f3604f440f2b4, 00000000000000000000000000000000000000000000000000157e7164e42000, 0000000000000000000000000000000000000000000000000000000000000040, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
|
272 |
ResolvedDelegateProxy.0x4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c( 0x4641df4a962071e12719d8c8c8e5ac7fc4d97b927346a3d7a335b1f7517e133c, 0x704a58c6be939fe449458950d46118a1fb67b0ba0cae1d766fdbd2878003fc08 )
|
273 |
Proxy.0xdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b( 0xdb5c7652857aa163daadd670e116628fb42e869d8ac4251ef8971d9e5727df1b, 0x3552a741b1cf97de793542bf611e31bfb9219675b14669fb18ee350f85a7682c, 0000000000000000000000000000000000000000000000000000000000000001 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x1a0ad011...fD9551054 | (Zora: Bridge) | 5,103.631778849286545232 Eth | 5,103.625728849286545232 Eth | 0.00605 | |
0x7CEB27b4...4F440f2b4 |
0.119585350660243047 Eth
Nonce: 94
|
0.125479661439884651 Eth
Nonce: 95
| 0.005894310779641604 | ||
0x95222290...5CC4BAfe5
Miner
| (beaverbuild) | 10.488563821757082024 Eth | 10.488573966207082024 Eth | 0.00001014445 | |
0xdC40a14d...3441ca506 |
Execution Trace
Proxy.43ca1c50( )
OptimismPortal2.finalizeWithdrawalTransactionExternalProof( _tx=[{name:nonce, type:uint256, order:1, indexed:false, value:1766847064778384329583297500742918515827483896875618958121606201292644541, valueString:1766847064778384329583297500742918515827483896875618958121606201292644541}, {name:sender, type:address, order:2, indexed:false, value:0x4200000000000000000000000000000000000007, valueString:0x4200000000000000000000000000000000000007}, {name:target, type:address, order:3, indexed:false, value:0xdC40a14d9abd6F410226f1E6de71aE03441ca506, valueString:0xdC40a14d9abd6F410226f1E6de71aE03441ca506}, {name:value, type:uint256, order:4, indexed:false, value:6050000000000000, valueString:6050000000000000}, {name:gasLimit, type:uint256, order:5, indexed:false, value:491310, valueString:491310}, {name:data, type:bytes, order:6, indexed:false, value:0xD764AD0B00010000000000000000000000000000000000000000000000000000000060B100000000000000000000000042000000000000000000000000000000000000100000000000000000000000003E2EA9B92B7E48A52296FD261DC26FD99528463100000000000000000000000000000000000000000000000000157E7164E420000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000C41635F5FD0000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B40000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B400000000000000000000000000000000000000000000000000157E7164E420000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, valueString:0xD764AD0B00010000000000000000000000000000000000000000000000000000000060B100000000000000000000000042000000000000000000000000000000000000100000000000000000000000003E2EA9B92B7E48A52296FD261DC26FD99528463100000000000000000000000000000000000000000000000000157E7164E420000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000000C41635F5FD0000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B40000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B400000000000000000000000000000000000000000000000000157E7164E420000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000}], _proofSubmitter=0x7CEB27b4fA424e842c23c7019C1f3604F440f2b4 )
Proxy.STATICCALL( )
-
SuperchainConfig.DELEGATECALL( )
-
PermissionedDisputeGame.STATICCALL( )
-
PermissionedDisputeGame.createdAt( ) => ( 1747120451 )
-
PermissionedDisputeGame.STATICCALL( )
-
PermissionedDisputeGame.status( ) => ( 2 )
-
PermissionedDisputeGame.STATICCALL( )
-
PermissionedDisputeGame.gameType( ) => ( gameType_=1 )
-
PermissionedDisputeGame.STATICCALL( )
-
PermissionedDisputeGame.resolvedAt( ) => ( 1747422911 )
-
ETH 0.00605
ResolvedDelegateProxy.d764ad0b( )
-
AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0xD3494713A5cfaD3F5359379DfA074E2Ac8C6Fd65 )
ETH 0.00605
L1CrossDomainMessenger.relayMessage( _nonce=1766847064778384329583297500742918515827483896875618958121606201292644529, _sender=0x4200000000000000000000000000000000000010, _target=0x3e2Ea9B92B7E48A52296fD261dc26fd995284631, _value=6050000000000000, _minGasLimit=200000, _message=0x1635F5FD0000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B40000000000000000000000007CEB27B4FA424E842C23C7019C1F3604F440F2B400000000000000000000000000000000000000000000000000157E7164E420000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000B7375706572627269646765000000000000000000000000000000000000000000 )
Proxy.STATICCALL( )
-
SuperchainConfig.DELEGATECALL( )
-
Proxy.STATICCALL( )
-
OptimismPortal2.DELEGATECALL( )
-
ETH 0.00605
L1ChugSplashProxy.1635f5fd( )
-
ProxyAdmin.STATICCALL( )
ETH 0.00605
L1StandardBridge.finalizeBridgeETH( _from=0x7CEB27b4fA424e842c23c7019C1f3604F440f2b4, _to=0x7CEB27b4fA424e842c23c7019C1f3604F440f2b4, _amount=6050000000000000, _extraData=0x7375706572627269646765 )
-
ResolvedDelegateProxy.STATICCALL( )
-
Proxy.STATICCALL( )
- ETH 0.00605
0x7ceb27b4fa424e842c23c7019c1f3604f440f2b4.CALL( )
-
-
-
File 1 of 12: Proxy
File 2 of 12: L1ChugSplashProxy
File 3 of 12: ResolvedDelegateProxy
File 4 of 12: OptimismPortal2
File 5 of 12: Proxy
File 6 of 12: SuperchainConfig
File 7 of 12: PermissionedDisputeGame
File 8 of 12: PermissionedDisputeGame
File 9 of 12: AddressManager
File 10 of 12: L1CrossDomainMessenger
File 11 of 12: ProxyAdmin
File 12 of 12: L1StandardBridge
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;/*** @title Proxy* @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or* if the caller is address(0), meaning that the call originated from an off-chain* simulation.*/contract Proxy {/*** @notice The storage slot that holds the address of the implementation.* bytes32(uint256(keccak256('eip1967.proxy.implementation')) - 1)*/bytes32 internal constant IMPLEMENTATION_KEY =0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;/**
File 2 of 12: L1ChugSplashProxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;/*** @title IL1ChugSplashDeployer*/interface IL1ChugSplashDeployer {function isUpgrading() external view returns (bool);}/*** @custom:legacy* @title L1ChugSplashProxy* @notice Basic ChugSplash proxy contract for L1. Very close to being a normal proxy but has added* functions `setCode` and `setStorage` for changing the code or storage of the contract.** Note for future developers: do NOT make anything in this contract 'public' unless you* know what you're doing. Anything public can potentially have a function signature that
File 3 of 12: ResolvedDelegateProxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { AddressManager } from "./AddressManager.sol";/*** @custom:legacy* @title ResolvedDelegateProxy* @notice ResolvedDelegateProxy is a legacy proxy contract that makes use of the AddressManager to* resolve the implementation address. We're maintaining this contract for backwards* compatibility so we can manage all legacy proxies where necessary.*/contract ResolvedDelegateProxy {/*** @notice Mapping used to store the implementation name that corresponds to this contract. A* mapping was originally used as a way to bypass the same issue normally solved by* storing the implementation address in a specific storage slot that does not conflict* with any other storage slot. Generally NOT a safe solution but works as long as the
File 4 of 12: OptimismPortal2
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";import { SafeCall } from "src/libraries/SafeCall.sol";import { DisputeGameFactory, IDisputeGame } from "src/dispute/DisputeGameFactory.sol";import { SystemConfig } from "src/L1/SystemConfig.sol";import { SuperchainConfig } from "src/L1/SuperchainConfig.sol";import { Constants } from "src/libraries/Constants.sol";import { Types } from "src/libraries/Types.sol";import { Hashing } from "src/libraries/Hashing.sol";import { SecureMerkleTrie } from "src/libraries/trie/SecureMerkleTrie.sol";import { AddressAliasHelper } from "src/vendor/AddressAliasHelper.sol";import { ResourceMetering } from "src/L1/ResourceMetering.sol";import { ISemver } from "src/universal/ISemver.sol";import { Constants } from "src/libraries/Constants.sol";import "src/libraries/PortalErrors.sol";
File 5 of 12: Proxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Constants } from "../libraries/Constants.sol";/// @title Proxy/// @notice Proxy is a transparent proxy that passes through the call if the caller is the owner or/// if the caller is address(0), meaning that the call originated from an off-chain/// simulation.contract Proxy {/// @notice An event that is emitted each time the implementation is changed. This event is part/// of the EIP-1967 specification./// @param implementation The address of the implementation contractevent Upgraded(address indexed implementation);/// @notice An event that is emitted each time the owner is upgraded. This event is part of the/// EIP-1967 specification./// @param previousAdmin The previous owner of the contract/// @param newAdmin The new owner of the contract
File 6 of 12: SuperchainConfig
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";// Librariesimport { Storage } from "src/libraries/Storage.sol";// Interfacesimport { ISemver } from "interfaces/universal/ISemver.sol";/// @custom:proxied true/// @custom:audit none This contracts is not yet audited./// @title SuperchainConfig/// @notice The SuperchainConfig contract is used to manage configuration of global superchain values.contract SuperchainConfig is Initializable, ISemver {/// @notice Enum representing different types of updates./// @custom:value GUARDIAN Represents an update to the guardian.enum UpdateType {
File 7 of 12: PermissionedDisputeGame
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { FaultDisputeGame } from "src/dispute/FaultDisputeGame.sol";// Librariesimport { GameType, Claim, Duration } from "src/dispute/lib/Types.sol";import { BadAuth } from "src/dispute/lib/Errors.sol";// Interfacesimport { IDelayedWETH } from "src/dispute/interfaces/IDelayedWETH.sol";import { IAnchorStateRegistry } from "src/dispute/interfaces/IAnchorStateRegistry.sol";import { IBigStepper } from "src/dispute/interfaces/IBigStepper.sol";/// @title PermissionedDisputeGame/// @notice PermissionedDisputeGame is a contract that inherits from `FaultDisputeGame`, and contains two roles:/// - The `challenger` role, which is allowed to challenge a dispute./// - The `proposer` role, which is allowed to create proposals and participate in their game./// This contract exists as a way for networks to support the fault proof iteration of the OptimismPortal
File 8 of 12: PermissionedDisputeGame
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { FaultDisputeGame } from "src/dispute/FaultDisputeGame.sol";// Librariesimport { GameType, Claim, Duration } from "src/dispute/lib/Types.sol";import { BadAuth } from "src/dispute/lib/Errors.sol";// Interfacesimport { IDelayedWETH } from "src/dispute/interfaces/IDelayedWETH.sol";import { IAnchorStateRegistry } from "src/dispute/interfaces/IAnchorStateRegistry.sol";import { IBigStepper } from "src/dispute/interfaces/IBigStepper.sol";/// @title PermissionedDisputeGame/// @notice PermissionedDisputeGame is a contract that inherits from `FaultDisputeGame`, and contains two roles:/// - The `challenger` role, which is allowed to challenge a dispute./// - The `proposer` role, which is allowed to create proposals and participate in their game./// This contract exists as a way for networks to support the fault proof iteration of the OptimismPortal
File 9 of 12: AddressManager
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";/*** @custom:legacy* @title AddressManager* @notice AddressManager is a legacy contract that was used in the old version of the Optimism* system to manage a registry of string names to addresses. We now use a more standard* proxy system instead, but this contract is still necessary for backwards compatibility* with several older contracts.*/contract AddressManager is Ownable {/*** @notice Mapping of the hashes of string names to addresses.*/mapping(bytes32 => address) private addresses;
File 10 of 12: L1CrossDomainMessenger
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Predeploys } from "src/libraries/Predeploys.sol";import { OptimismPortal } from "src/L1/OptimismPortal.sol";import { CrossDomainMessenger } from "src/universal/CrossDomainMessenger.sol";import { ISemver } from "src/universal/ISemver.sol";import { SuperchainConfig } from "src/L1/SuperchainConfig.sol";/// @custom:proxied/// @title L1CrossDomainMessenger/// @notice The L1CrossDomainMessenger is a message passing interface between L1 and L2 responsible/// for sending and receiving data on the L1 side. Users are encouraged to use this/// interface instead of interacting with lower-level contracts directly.contract L1CrossDomainMessenger is CrossDomainMessenger, ISemver {/// @notice Contract of the SuperchainConfig.SuperchainConfig public superchainConfig;/// @notice Contract of the OptimismPortal.
File 11 of 12: ProxyAdmin
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";/*** @custom:legacy* @title AddressManager* @notice AddressManager is a legacy contract that was used in the old version of the Optimism* system to manage a registry of string names to addresses. We now use a more standard* proxy system instead, but this contract is still necessary for backwards compatibility* with several older contracts.*/contract AddressManager is Ownable {/*** @notice Mapping of the hashes of string names to addresses.*/mapping(bytes32 => address) private addresses;
File 12 of 12: L1StandardBridge
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;import { Predeploys } from "src/libraries/Predeploys.sol";import { StandardBridge } from "src/universal/StandardBridge.sol";import { ISemver } from "src/universal/ISemver.sol";import { CrossDomainMessenger } from "src/universal/CrossDomainMessenger.sol";import { SuperchainConfig } from "src/L1/SuperchainConfig.sol";import { Constants } from "src/libraries/Constants.sol";/// @custom:proxied/// @title L1StandardBridge/// @notice The L1StandardBridge is responsible for transfering ETH and ERC20 tokens between L1 and/// L2. In the case that an ERC20 token is native to L1, it will be escrowed within this/// contract. If the ERC20 token is native to L2, it will be burnt. Before Bedrock, ETH was/// stored within this contract. After Bedrock, ETH is instead stored inside the/// OptimismPortal contract./// NOTE: this contract is not intended to support all variations of ERC20 tokens. Examples