Transaction Hash:
Block:
22530422 at May-21-2025 09:37:47 AM +UTC
Transaction Fee:
0.00067353061283928 ETH
$1.72
Gas Used:
606,708 Gas / 1.11013966 Gwei
Emitted Events:
400 |
PerpToken.Transfer( from=[Sender] 0xc92a31c5080246e4676ff878db0993aed9cc5f5a, to=[Receiver] L1ChugSplashProxy, value=12681267924173920374881 )
|
401 |
PerpToken.Approval( owner=[Sender] 0xc92a31c5080246e4676ff878db0993aed9cc5f5a, spender=[Receiver] L1ChugSplashProxy, value=0 )
|
402 |
L1ChugSplashProxy.0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396( 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396, 0x000000000000000000000000bc396689893d065f41bc2c6ecbee5e0085233447, 0x0000000000000000000000009e1028f5f1d5ede59748ffcee5532509976840e0, 0x000000000000000000000000c92a31c5080246e4676ff878db0993aed9cc5f5a, 000000000000000000000000c92a31c5080246e4676ff878db0993aed9cc5f5a, 0000000000000000000000000000000000000000000002af73f204cc95c79061, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
|
403 |
L1ChugSplashProxy.0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf( 0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf, 0x000000000000000000000000bc396689893d065f41bc2c6ecbee5e0085233447, 0x0000000000000000000000009e1028f5f1d5ede59748ffcee5532509976840e0, 0x000000000000000000000000c92a31c5080246e4676ff878db0993aed9cc5f5a, 000000000000000000000000c92a31c5080246e4676ff878db0993aed9cc5f5a, 0000000000000000000000000000000000000000000002af73f204cc95c79061, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
|
404 |
Proxy.0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32( 0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32, 0x00000000000000000000000036bde71c97b33cc4729cf772ae268934f7ab70b2, 0x0000000000000000000000004200000000000000000000000000000000000007, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000020, 000000000000000000000000000000000000000000000000000000000000024d, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 000000000007e57600d764ad0b00010000000000000000000000000000000000, 0000000000000000000002ad0600000000000000000000000099c9fc46f92e8a, 1c0dec1b1747d010903e884be100000000000000000000000042000000000000, 0000000000000000000000001000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000030d4000000000000000000000000000000000000000, 000000000000000000000000c000000000000000000000000000000000000000, 000000000000000000000001040166a07a0000000000000000000000009e1028, f5f1d5ede59748ffcee5532509976840e0000000000000000000000000bc3966, 89893d065f41bc2c6ecbee5e0085233447000000000000000000000000c92a31, c5080246e4676ff878db0993aed9cc5f5a000000000000000000000000c92a31, c5080246e4676ff878db0993aed9cc5f5a000000000000000000000000000000, 0000000000000002af73f204cc95c79061000000000000000000000000000000, 00000000000000000000000000000000c0000000000000000000000000000000, 000000000000000000000000000000000b737570657262726964676500000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
|
405 |
Lib_ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000080, 000100000000000000000000000000000000000000000000000000000002ad06, 0000000000000000000000000000000000000000000000000000000000030d40, 0000000000000000000000000000000000000000000000000000000000000104, 0166a07a0000000000000000000000009e1028f5f1d5ede59748ffcee5532509, 976840e0000000000000000000000000bc396689893d065f41bc2c6ecbee5e00, 85233447000000000000000000000000c92a31c5080246e4676ff878db0993ae, d9cc5f5a000000000000000000000000c92a31c5080246e4676ff878db0993ae, d9cc5f5a0000000000000000000000000000000000000000000002af73f204cc, 95c7906100000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000b73757065726272696467650000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
|
406 |
Lib_ResolvedDelegateProxy.0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546( 0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546, 0x00000000000000000000000099c9fc46f92e8a1c0dec1b1747d010903e884be1, 0000000000000000000000000000000000000000000000000000000000000000 )
|
Account State Difference:
Address | Before | After | State Difference | ||
---|---|---|---|---|---|
0x25ace71c...4F7ab5fA1 | (Optimism: Proxy OVM L1 Cross Domain Messenger) | ||||
0x4838B106...B0BAD5f97
Miner
| (Titan Builder) | 6.936469090927596907 Eth | 6.936499426327596907 Eth | 0.0000303354 | |
0x99C9fc46...03E884bE1 | (Optimism: Gateway) | ||||
0xbC396689...085233447 | |||||
0xbEb5Fc57...e41f106Ed | (Optimism: Portal) | ||||
0xC92a31c5...eD9cC5f5a |
0.092415513808051829 Eth
Nonce: 22
|
0.091741983195212549 Eth
Nonce: 23
| 0.00067353061283928 |
Execution Trace
L1ChugSplashProxy.838b2520( )
-
ProxyAdmin.STATICCALL( )
L1StandardBridge.depositERC20To( _l1Token=0xbC396689893D065F41bc2C6EcbeE5e0085233447, _l2Token=0x9e1028F5F1D5eDE59748FFceE5532509976840E0, _to=0xC92a31c5080246e4676Ff878Db0993aeD9cC5f5a, _amount=12681267924173920374881, _minGasLimit=200000, _extraData=0x7375706572627269646765 )
-
PerpToken.01ffc9a7( )
-
PerpToken.01ffc9a7( )
-
PerpToken.transferFrom( sender=0xC92a31c5080246e4676Ff878Db0993aeD9cC5f5a, recipient=0x99C9fc46f92E8a1c0deC1b1747d010903E884bE1, amount=12681267924173920374881 ) => ( True )
Lib_ResolvedDelegateProxy.3dbb202b( )
-
Lib_AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0x5D5a095665886119693F0B41d8DFeE78da033e8B )
L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x0166A07A0000000000000000000000009E1028F5F1D5EDE59748FFCEE5532509976840E0000000000000000000000000BC396689893D065F41BC2C6ECBEE5E0085233447000000000000000000000000C92A31C5080246E4676FF878DB0993AED9CC5F5A000000000000000000000000C92A31C5080246E4676FF878DB0993AED9CC5F5A0000000000000000000000000000000000000000000002AF73F204CC95C7906100000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B7375706572627269646765000000000000000000000000000000000000000000, _minGasLimit=200000 )
Proxy.e9e05c42( )
OptimismPortal2.depositTransaction( _to=0x4200000000000000000000000000000000000007, _value=0, _gasLimit=517494, _isCreation=False, _data=0xD764AD0B000100000000000000000000000000000000000000000000000000000002AD0600000000000000000000000099C9FC46F92E8A1C0DEC1B1747D010903E884BE1000000000000000000000000420000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000001040166A07A0000000000000000000000009E1028F5F1D5EDE59748FFCEE5532509976840E0000000000000000000000000BC396689893D065F41BC2C6ECBEE5E0085233447000000000000000000000000C92A31C5080246E4676FF878DB0993AED9CC5F5A000000000000000000000000C92A31C5080246E4676FF878DB0993AED9CC5F5A0000000000000000000000000000000000000000000002AF73F204CC95C7906100000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
-
Proxy.STATICCALL( )
-
-
-
File 1 of 10: L1ChugSplashProxy
File 2 of 10: PerpToken
File 3 of 10: Proxy
File 4 of 10: Lib_ResolvedDelegateProxy
File 5 of 10: ProxyAdmin
File 6 of 10: L1StandardBridge
File 7 of 10: Lib_AddressManager
File 8 of 10: L1CrossDomainMessenger
File 9 of 10: OptimismPortal2
File 10 of 10: Proxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >0.5.0 <0.8.0;import { iL1ChugSplashDeployer } from "./interfaces/iL1ChugSplashDeployer.sol";/*** @title L1ChugSplashProxy* @dev 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. Nifty!** 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 conflicts with a* signature attached to the implementation contract. Public functions SHOULD always have the* 'proxyCallIfNotOwner' modifier unless there's some *really* good reason not to have that* modifier. And there almost certainly is not a good reason to not have that modifier. Beware!*/contract L1ChugSplashProxy {/*************
File 2 of 10: PerpToken
12345678910111213141516// SPDX-License-Identifier: BSD-3-Clausepragma solidity 0.6.7;///** @dev Provides information about the current execution context, including the* sender of the transaction and its data. While these are generally available* via msg.sender and msg.data, they should not be accessed in such a direct* manner, since when dealing with GSN meta-transactions the account sending and* paying for execution may not be the actual sender (as far as an application* is concerned).** This contract is only required for intermediate, library-like contracts.*/
File 3 of 10: Proxy
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 4 of 10: Lib_ResolvedDelegateProxy
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "../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.** By default, the owner account will be the one that deploys the contract. 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.*/abstract contract Ownable is Context {
File 5 of 10: 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 6 of 10: L1StandardBridge
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { StandardBridge } from "src/universal/StandardBridge.sol";// Librariesimport { Predeploys } from "src/libraries/Predeploys.sol";// Interfacesimport { ISemver } from "interfaces/universal/ISemver.sol";import { ICrossDomainMessenger } from "interfaces/universal/ICrossDomainMessenger.sol";import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol";/// @custom:proxied true/// @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
File 7 of 10: Lib_AddressManager
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity >=0.6.0 <0.8.0;import "../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.** By default, the owner account will be the one that deploys the contract. 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.*/abstract contract Ownable is Context {
File 8 of 10: L1CrossDomainMessenger
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { CrossDomainMessenger } from "src/universal/CrossDomainMessenger.sol";// Librariesimport { Predeploys } from "src/libraries/Predeploys.sol";// Interfacesimport { ISemver } from "interfaces/universal/ISemver.sol";import { ISuperchainConfig } from "interfaces/L1/ISuperchainConfig.sol";import { IOptimismPortal2 as IOptimismPortal } from "interfaces/L1/IOptimismPortal2.sol";/// @custom:proxied true/// @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 {
File 9 of 10: OptimismPortal2
12345678910111213141516// SPDX-License-Identifier: MITpragma solidity 0.8.15;// Contractsimport { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";import { ResourceMetering } from "src/L1/ResourceMetering.sol";// Librariesimport { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";import { EOA } from "src/libraries/EOA.sol";import { SafeCall } from "src/libraries/SafeCall.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 {BadTarget,
File 10 of 10: Proxy
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;/**