ETH Price: $2,512.01 (-0.69%)

Transaction Decoder

Block:
18375037 at Oct-18-2023 05:03:59 AM +UTC
Transaction Fee:
0.001987083335271921 ETH $4.99
Gas Used:
297,489 Gas / 6.679518689 Gwei

Emitted Events:

183 GnosisSafeProxy.0x3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d( 0x3d0ce9bfc3ed7d6862dbb28b2dea94561fe714a1b4d019aa8af39730d1ad7c3d, 0x0000000000000000000000006774bcbd5cecef1336b5300fb5186a12ddd8b367, 00000000000000000000000000000000000000000000000000004c65c6294000 )
184 TransparentUpgradeableProxy.0x69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e( 0x69cfcb8e6d4192b8aba9902243912587f37e550d75c1fa801491fce26717f37e, 0x0000000000000000000000007885bcbd5cecef1336b5300fb5186a12ddd8c478, 0x000000000000000000000000781e90f1c8fc4611c9b7497c3b47f99ef6969cbc, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000001325, 0000000000000000000000000000000000000000000000000000000000029040, 0000000000000000000000000000000000000000000000000000000000000080, 0000000000000000000000000000000000000000000000000000000000000184, 8ef1332e0000000000000000000000007f2b8c31f88b6006c382775eea88297e, c1e3e9050000000000000000000000006ea73e05adc79974b931123675ea8f78, ffdacdf0000000000000000000000000000000000000000000000000002386f2, 6fc1000000000000000000000000000000000000000000000000000000000000, 0000132500000000000000000000000000000000000000000000000000000000, 000000a000000000000000000000000000000000000000000000000000000000, 000000a4232e874800000000000000000000000007f5813f95462da339f57e40, 1e5cc12a7f602e5000000000000000000000000007f5813f95462da339f57e40, 1e5cc12a7f602e50000000000000000000000000000000000000000000000000, 002386f26fc10000000000000000000000000000000000000000000000000000, 0000000000000080000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
185 TransparentUpgradeableProxy.0x104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e( 0x104371f3b442861a2a7b82a070afbbaab748bb13757bf47769e170e37809ec1e, 0x0000000000000000000000007f2b8c31f88b6006c382775eea88297ec1e3e905, 0x0000000000000000000000006ea73e05adc79974b931123675ea8f78ffdacdf0, 000000000000000000000000000000000000000000000000002386f26fc10000, 0000000000000000000000000000000000000000000000000000000000001325, 0000000000000000000000000000000000000000000000000000000000029040, 0000000000000000000000000000000000000000000000000000000000000080, 00000000000000000000000000000000000000000000000000000000000000a4, 232e874800000000000000000000000007f5813f95462da339f57e401e5cc12a, 7f602e5000000000000000000000000007f5813f95462da339f57e401e5cc12a, 7f602e50000000000000000000000000000000000000000000000000002386f2, 6fc1000000000000000000000000000000000000000000000000000000000000, 0000008000000000000000000000000000000000000000000000000000000000, 0000000000000000000000000000000000000000000000000000000000000000 )
186 TransparentUpgradeableProxy.0x6670de856ec8bf5cb2b7e957c5dc24759716056f79d97ea5e7c939ca0ba5a675( 0x6670de856ec8bf5cb2b7e957c5dc24759716056f79d97ea5e7c939ca0ba5a675, 0x00000000000000000000000007f5813f95462da339f57e401e5cc12a7f602e50, 0x00000000000000000000000007f5813f95462da339f57e401e5cc12a7f602e50, 000000000000000000000000000000000000000000000000002386f26fc10000, 0000000000000000000000000000000000000000000000000000000000000040, 0000000000000000000000000000000000000000000000000000000000000000 )

Account State Difference:

  Address   Before After State Difference Code
0x07F5813f...A7F602e50
0.018543870034211638 Eth
Nonce: 65
0.006472786698939717 Eth
Nonce: 66
0.012071083335271921
0x0d7E906B...54E39AF9B
(Scroll: L1 Message Queue Proxy)
0x6774Bcbd...2DDD8b367
(Scroll: L1 Scroll Messenger Proxy)
1,937.049761839998732345 Eth1,937.059761839998732345 Eth0.01
0x8FA3b457...5867eEB48 11.58669665050483037 Eth11.58678065050483037 Eth0.000084
(beaverbuild)
5.073766362619673784 Eth5.073796111519673784 Eth0.0000297489

Execution Trace

ETH 0.010084 TransparentUpgradeableProxy.9f8420b3( )
  • ETH 0.010084 L1GatewayRouter.depositETH( _amount=10000000000000000, _gasLimit=168000 )
    • ETH 0.010084 TransparentUpgradeableProxy.aac476f8( )
      • ETH 0.010084 L1ETHGateway.depositETHAndCall( _to=0x07F5813f95462Da339F57e401e5cc12A7F602e50, _amount=10000000000000000, _data=0x00000000000000000000000007F5813F95462DA339F57E401E5CC12A7F602E5000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000, _gasLimit=168000 )
        • ETH 0.010084 TransparentUpgradeableProxy.5f7b1577( )
          • ETH 0.010084 L1ScrollMessenger.sendMessage( _to=0x6EA73e05AdC79974B931123675ea8F78FfdacDF0, _value=10000000000000000, _message=0x232E874800000000000000000000000007F5813F95462DA339F57E401E5CC12A7F602E5000000000000000000000000007F5813F95462DA339F57E401E5CC12A7F602E50000000000000000000000000000000000000000000000000002386F26FC1000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000, _gasLimit=168000, _refundAddress=0x07F5813f95462Da339F57e401e5cc12A7F602e50 )
            • TransparentUpgradeableProxy.STATICCALL( )
            • TransparentUpgradeableProxy.d7704bae( )
            • ETH 0.000084 GnosisSafeProxy.CALL( )
            • TransparentUpgradeableProxy.9b159782( )
              File 1 of 8: TransparentUpgradeableProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              // OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
              * does not implement this interface directly, and some of its functions are implemented by an internal dispatch
              * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
              * include them in the ABI so this interface must be used to interact with it.
              */
              interface ITransparentUpgradeableProxy is IERC1967 {
              function admin() external view returns (address);
              function implementation() external view returns (address);
              function changeAdmin(address) external;
              function upgradeTo(address) external;
              function upgradeToAndCall(address, bytes memory) external payable;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 2 of 8: GnosisSafeProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: LGPL-3.0-only
              pragma solidity >=0.7.0 <0.9.0;
              /// @title IProxy - Helper interface to access masterCopy of the Proxy on-chain
              /// @author Richard Meissner - <richard@gnosis.io>
              interface IProxy {
              function masterCopy() external view returns (address);
              }
              /// @title GnosisSafeProxy - Generic proxy contract allows to execute all transactions applying the code of a master contract.
              /// @author Stefan George - <stefan@gnosis.io>
              /// @author Richard Meissner - <richard@gnosis.io>
              contract GnosisSafeProxy {
              // singleton always needs to be first declared variable, to ensure that it is at the same location in the contracts to which calls are delegated.
              // To reduce deployment costs this variable is internal and needs to be retrieved via `getStorageAt`
              address internal singleton;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 3 of 8: TransparentUpgradeableProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              // OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
              * does not implement this interface directly, and some of its functions are implemented by an internal dispatch
              * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
              * include them in the ABI so this interface must be used to interact with it.
              */
              interface ITransparentUpgradeableProxy is IERC1967 {
              function admin() external view returns (address);
              function implementation() external view returns (address);
              function changeAdmin(address) external;
              function upgradeTo(address) external;
              function upgradeToAndCall(address, bytes memory) external payable;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 4 of 8: TransparentUpgradeableProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              // OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
              * does not implement this interface directly, and some of its functions are implemented by an internal dispatch
              * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
              * include them in the ABI so this interface must be used to interact with it.
              */
              interface ITransparentUpgradeableProxy is IERC1967 {
              function admin() external view returns (address);
              function implementation() external view returns (address);
              function changeAdmin(address) external;
              function upgradeTo(address) external;
              function upgradeToAndCall(address, bytes memory) external payable;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 5 of 8: TransparentUpgradeableProxy
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              // OpenZeppelin Contracts (last updated v4.9.0) (proxy/transparent/TransparentUpgradeableProxy.sol)
              pragma solidity ^0.8.0;
              import "../ERC1967/ERC1967Proxy.sol";
              /**
              * @dev Interface for {TransparentUpgradeableProxy}. In order to implement transparency, {TransparentUpgradeableProxy}
              * does not implement this interface directly, and some of its functions are implemented by an internal dispatch
              * mechanism. The compiler is unaware that these functions are implemented by {TransparentUpgradeableProxy} and will not
              * include them in the ABI so this interface must be used to interact with it.
              */
              interface ITransparentUpgradeableProxy is IERC1967 {
              function admin() external view returns (address);
              function implementation() external view returns (address);
              function changeAdmin(address) external;
              function upgradeTo(address) external;
              function upgradeToAndCall(address, bytes memory) external payable;
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 6 of 8: L1GatewayRouter
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity =0.8.16;
              import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";
              import {IERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/IERC20Upgradeable.sol";
              import {SafeERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/utils/SafeERC20Upgradeable.sol";
              import {IL1ETHGateway} from "./IL1ETHGateway.sol";
              import {IL1ERC20Gateway} from "./IL1ERC20Gateway.sol";
              import {IL1GatewayRouter} from "./IL1GatewayRouter.sol";
              /// @title L1GatewayRouter
              /// @notice The `L1GatewayRouter` is the main entry for depositing Ether and ERC20 tokens.
              /// All deposited tokens are routed to corresponding gateways.
              /// @dev One can also use this contract to query L1/L2 token address mapping.
              /// In the future, ERC-721 and ERC-1155 tokens will be added to the router too.
              contract L1GatewayRouter is OwnableUpgradeable, IL1GatewayRouter {
              using SafeERC20Upgradeable for IERC20Upgradeable;
              /*************
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 7 of 8: L1ETHGateway
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity =0.8.16;
              import {IL2ETHGateway} from "../../L2/gateways/IL2ETHGateway.sol";
              import {IL1ScrollMessenger} from "../IL1ScrollMessenger.sol";
              import {IL1ETHGateway} from "./IL1ETHGateway.sol";
              import {IMessageDropCallback} from "../../libraries/callbacks/IMessageDropCallback.sol";
              import {ScrollGatewayBase} from "../../libraries/gateway/ScrollGatewayBase.sol";
              // solhint-disable avoid-low-level-calls
              /// @title L1ETHGateway
              /// @notice The `L1ETHGateway` is used to deposit ETH on layer 1 and
              /// finalize withdraw ETH from layer 2.
              /// @dev The deposited ETH tokens are held in this gateway. On finalizing withdraw, the corresponding
              /// ETH will be transfer to the recipient directly.
              contract L1ETHGateway is ScrollGatewayBase, IL1ETHGateway, IMessageDropCallback {
              /***************
              * Constructor *
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              File 8 of 8: L1ScrollMessenger
              1
              2
              3
              4
              5
              6
              7
              8
              9
              10
              11
              12
              13
              14
              15
              16
              // SPDX-License-Identifier: MIT
              pragma solidity =0.8.16;
              import {IScrollChain} from "./rollup/IScrollChain.sol";
              import {IL1MessageQueue} from "./rollup/IL1MessageQueue.sol";
              import {IL1ScrollMessenger} from "./IL1ScrollMessenger.sol";
              import {ScrollConstants} from "../libraries/constants/ScrollConstants.sol";
              import {IScrollMessenger} from "../libraries/IScrollMessenger.sol";
              import {ScrollMessengerBase} from "../libraries/ScrollMessengerBase.sol";
              import {WithdrawTrieVerifier} from "../libraries/verifier/WithdrawTrieVerifier.sol";
              import {IMessageDropCallback} from "../libraries/callbacks/IMessageDropCallback.sol";
              // solhint-disable avoid-low-level-calls
              // solhint-disable not-rely-on-time
              // solhint-disable reason-string
              /// @title L1ScrollMessenger
              /// @notice The `L1ScrollMessenger` contract can:
              ///
              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX