ETH Price: $3,289.84 (+6.25%)

Transaction Decoder

Block:
21511398 at Dec-29-2024 11:25:23 PM +UTC
Transaction Fee:
0.00085953148361535 ETH $2.83
Gas Used:
259,350 Gas / 3.314175761 Gwei

Emitted Events:

332 WBTC.Transfer( from=[Sender] 0x292439309e85bc14a7065b0df813caaf02ba572e, to=[Receiver] L1ChugSplashProxy, value=12000 )
333 L1ChugSplashProxy.0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396( 0x718594027abd4eaed59f95162563e0cc6d0e8d5b86b1c7be8b1b0ac3343d0396, 0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599, 0x00000000000000000000000003c7054bcb39f7b2e5b2c7acb37583e32d70cfa3, 0x000000000000000000000000292439309e85bc14a7065b0df813caaf02ba572e, 000000000000000000000000292439309e85bc14a7065b0df813caaf02ba572e, 0000000000000000000000000000000000000000000000000000000000002ee0, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
334 L1ChugSplashProxy.0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf( 0x7ff126db8024424bbfd9826e8ab82ff59136289ea440b04b39a0df1b03b9cabf, 0x0000000000000000000000002260fac5e5542a773aa44fbcfedf7c193bc2c599, 0x00000000000000000000000003c7054bcb39f7b2e5b2c7acb37583e32d70cfa3, 0x000000000000000000000000292439309e85bc14a7065b0df813caaf02ba572e, 000000000000000000000000292439309e85bc14a7065b0df813caaf02ba572e, 0000000000000000000000000000000000000000000000000000000000002ee0, 0000000000000000000000000000000000000000000000000000000000000060, 000000000000000000000000000000000000000000000000000000000000000b, 7375706572627269646765000000000000000000000000000000000000000000 )
335 Proxy.0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32( 0xb3813568d9991fc951961fcb4c784893574240a28925604d09fc577c55bb7c32, 0x000000000000000000000000091ce9f7a74ab776b69d3f0dc5c08c39b3a0cb2a, 0x0000000000000000000000004200000000000000000000000000000000000007, 0x0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000020, 000000000000000000000000000000000000000000000000000000000000024d, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 000000000007832e00d764ad0b00010000000000000000000000000000000000, 00000000000000000000002ef60000000000000000000000002b3f201543adf7, 3160ba42e1a5b7750024f3042000000000000000000000000042000000000000, 0000000000000000000000001000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 00000000000000000000030d4000000000000000000000000000000000000000, 000000000000000000000000c000000000000000000000000000000000000000, 000000000000000000000001040166a07a00000000000000000000000003c705, 4bcb39f7b2e5b2c7acb37583e32d70cfa30000000000000000000000002260fa, c5e5542a773aa44fbcfedf7c193bc2c599000000000000000000000000292439, 309e85bc14a7065b0df813caaf02ba572e000000000000000000000000292439, 309e85bc14a7065b0df813caaf02ba572e000000000000000000000000000000, 0000000000000000000000000000002ee0000000000000000000000000000000, 00000000000000000000000000000000c0000000000000000000000000000000, 000000000000000000000000000000000b737570657262726964676500000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
336 ResolvedDelegateProxy.0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a( 0xcb0f7ffd78f9aee47a248fae8db181db6eee833039123e026dcbff529522e52a, 0x0000000000000000000000004200000000000000000000000000000000000010, 0000000000000000000000002b3f201543adf73160ba42e1a5b7750024f30420, 0000000000000000000000000000000000000000000000000000000000000080, 0001000000000000000000000000000000000000000000000000000000002ef6, 0000000000000000000000000000000000000000000000000000000000030d40, 0000000000000000000000000000000000000000000000000000000000000104, 0166a07a00000000000000000000000003c7054bcb39f7b2e5b2c7acb37583e3, 2d70cfa30000000000000000000000002260fac5e5542a773aa44fbcfedf7c19, 3bc2c599000000000000000000000000292439309e85bc14a7065b0df813caaf, 02ba572e000000000000000000000000292439309e85bc14a7065b0df813caaf, 02ba572e00000000000000000000000000000000000000000000000000000000, 00002ee000000000000000000000000000000000000000000000000000000000, 000000c000000000000000000000000000000000000000000000000000000000, 0000000b73757065726272696467650000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
337 ResolvedDelegateProxy.0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546( 0x8ebb2ec2465bdb2a06a66fc37a0963af8a2a6a1479d81d56fdb8cbb98096d546, 0x0000000000000000000000002b3f201543adf73160ba42e1a5b7750024f30420, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x2260FAC5...93bc2C599
0x29243930...f02bA572e
0.00293578659354212 Eth
Nonce: 1
0.00207625510992677 Eth
Nonce: 2
0.00085953148361535
0x2b3F2015...024F30420
(Titan Builder)
11.441215443750892894 Eth11.441215551308524894 Eth0.000000107557632
0x59625d1F...9b3471781
0xf80be9f7...9b3A0bA19

Execution Trace

L1ChugSplashProxy.838b2520( )
  • ProxyAdmin.STATICCALL( )
  • L1StandardBridge.depositERC20To( _l1Token=0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599, _l2Token=0x03C7054BCB39f7b2e5B2c7AcB37583e32D70Cfa3, _to=0x292439309E85bC14a7065B0DF813CaAf02bA572e, _amount=12000, _minGasLimit=200000, _extraData=0x7375706572627269646765 )
    • WBTC.01ffc9a7( )
    • WBTC.01ffc9a7( )
    • WBTC.transferFrom( _from=0x292439309E85bC14a7065B0DF813CaAf02bA572e, _to=0x2b3F201543adF73160bA42E1a5b7750024F30420, _value=12000 ) => ( True )
    • ResolvedDelegateProxy.3dbb202b( )
      • AddressManager.getAddress( _name=OVM_L1CrossDomainMessenger ) => ( 0x958487e21ba9E073836d598E31f749726f23413f )
      • L1CrossDomainMessenger.sendMessage( _target=0x4200000000000000000000000000000000000010, _message=0x0166A07A00000000000000000000000003C7054BCB39F7B2E5B2C7ACB37583E32D70CFA30000000000000000000000002260FAC5E5542A773AA44FBCFEDF7C193BC2C599000000000000000000000000292439309E85BC14A7065B0DF813CAAF02BA572E000000000000000000000000292439309E85BC14A7065B0DF813CAAF02BA572E0000000000000000000000000000000000000000000000000000000000002EE000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B7375706572627269646765000000000000000000000000000000000000000000, _minGasLimit=200000 )
        • Proxy.e9e05c42( )
          • OptimismPortal.depositTransaction( _to=0x4200000000000000000000000000000000000007, _value=0, _gasLimit=492334, _isCreation=False, _data=0xD764AD0B0001000000000000000000000000000000000000000000000000000000002EF60000000000000000000000002B3F201543ADF73160BA42E1A5B7750024F30420000000000000000000000000420000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030D4000000000000000000000000000000000000000000000000000000000000000C000000000000000000000000000000000000000000000000000000000000001040166A07A00000000000000000000000003C7054BCB39F7B2E5B2C7ACB37583E32D70CFA30000000000000000000000002260FAC5E5542A773AA44FBCFEDF7C193BC2C599000000000000000000000000292439309E85BC14A7065B0DF813CAAF02BA572E000000000000000000000000292439309E85BC14A7065B0DF813CAAF02BA572E0000000000000000000000000000000000000000000000000000000000002EE000000000000000000000000000000000000000000000000000000000000000C0000000000000000000000000000000000000000000000000000000000000000B737570657262726964676500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
            • Proxy.STATICCALL( )
              File 1 of 10: L1ChugSplashProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 2 of 10: WBTC
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              pragma solidity 0.4.24;
              // File: openzeppelin-solidity/contracts/token/ERC20/ERC20Basic.sol
              /**
              * @title ERC20Basic
              * @dev Simpler version of ERC20 interface
              * See https://github.com/ethereum/EIPs/issues/179
              */
              contract ERC20Basic {
              function totalSupply() public view returns (uint256);
              function balanceOf(address _who) public view returns (uint256);
              function transfer(address _to, uint256 _value) public returns (bool);
              event Transfer(address indexed from, address indexed to, uint256 value);
              }
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 3 of 10: Proxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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;
              /**
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 4 of 10: ResolvedDelegateProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 5 of 10: ProxyAdmin
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 6 of 10: L1StandardBridge
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity 0.8.15;
              import { Predeploys } from "../libraries/Predeploys.sol";
              import { StandardBridge } from "../universal/StandardBridge.sol";
              import { Semver } from "../universal/Semver.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
              * of some token types that may not be properly supported by this contract include, but are
              * not limited to: tokens with transfer fees, rebasing tokens, and tokens with blocklists.
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 7 of 10: AddressManager
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 8 of 10: L1CrossDomainMessenger
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity 0.8.15;
              import { Predeploys } from "../libraries/Predeploys.sol";
              import { OptimismPortal } from "./OptimismPortal.sol";
              import { CrossDomainMessenger } from "../universal/CrossDomainMessenger.sol";
              import { Semver } from "../universal/Semver.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, Semver {
              /**
              * @notice Address of the OptimismPortal.
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 9 of 10: OptimismPortal
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity 0.8.15;
              import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
              import { SafeCall } from "../libraries/SafeCall.sol";
              import { L2OutputOracle } from "./L2OutputOracle.sol";
              import { SystemConfig } from "./SystemConfig.sol";
              import { Constants } from "../libraries/Constants.sol";
              import { Types } from "../libraries/Types.sol";
              import { Hashing } from "../libraries/Hashing.sol";
              import { SecureMerkleTrie } from "../libraries/trie/SecureMerkleTrie.sol";
              import { AddressAliasHelper } from "../vendor/AddressAliasHelper.sol";
              import { ResourceMetering } from "./ResourceMetering.sol";
              import { Semver } from "../universal/Semver.sol";
              /// @custom:proxied
              /// @title OptimismPortal
              /// @notice The OptimismPortal is a low-level contract responsible for passing messages between L1
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 10 of 10: Proxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma 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;
              /**
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX