ETH Price: $3,471.55 (+6.00%)
Gas: 6 Gwei

Contract

0x676A795fe6E43C17c668de16730c3F690FEB7120
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
0xa9263498a32b1e2994a6735ca4e1dcaa0b527bcb9bd5255d21b47b80bb0d1ed6 Relay Message(pending)2024-07-14 1:24:162 days ago1720920256IN
0x676A795f...90FEB7120
0 ETH(Pending)(Pending)
Send Message200781452024-06-12 20:30:3533 days ago1718224235IN
0x676A795f...90FEB7120
0 ETH0.0028607715.14616026
Send Message200781352024-06-12 20:28:3533 days ago1718224115IN
0x676A795f...90FEB7120
0 ETH0.0029045115.8989683
Send Message200778862024-06-12 19:38:2333 days ago1718221103IN
0x676A795f...90FEB7120
0 ETH0.0030908318.91320522
Relay Message199288452024-05-22 23:56:4754 days ago1716422207IN
0x676A795f...90FEB7120
0 ETH0.000788336.05294213
Relay Message196933252024-04-20 1:23:2387 days ago1713576203IN
0x676A795f...90FEB7120
0 ETH0.000708035.39188554
Relay Message195929582024-04-05 23:57:35101 days ago1712361455IN
0x676A795f...90FEB7120
0 ETH0.0013236410
Relay Message195091032024-03-25 4:22:11112 days ago1711340531IN
0x676A795f...90FEB7120
0 ETH0.0015469111.5
Relay Message195082882024-03-25 1:36:11112 days ago1711330571IN
0x676A795f...90FEB7120
0 ETH0.0018981114.3388298
Relay Message194546422024-03-17 12:44:35120 days ago1710679475IN
0x676A795f...90FEB7120
0 ETH0.0032190824.22947835
Relay Message194367132024-03-15 0:13:47123 days ago1710461627IN
0x676A795f...90FEB7120
0 ETH0.039727748.05332815
Relay Message194366942024-03-15 0:09:59123 days ago1710461399IN
0x676A795f...90FEB7120
0 ETH0.036226240.26941025
Relay Message194366082024-03-14 23:52:47123 days ago1710460367IN
0x676A795f...90FEB7120
0 ETH0.03589241.37369109
Relay Message194358372024-03-14 21:15:47123 days ago1710450947IN
0x676A795f...90FEB7120
0 ETH0.0471754554.38406206
Relay Message194327962024-03-14 10:56:59123 days ago1710413819IN
0x676A795f...90FEB7120
0 ETH0.0370409843.12808249
Relay Message194326782024-03-14 10:32:35123 days ago1710412355IN
0x676A795f...90FEB7120
0 ETH0.0409448847.67241557
Relay Message194326742024-03-14 10:31:47123 days ago1710412307IN
0x676A795f...90FEB7120
0 ETH0.0361490642.17483194
Relay Message194322832024-03-14 9:12:59123 days ago1710407579IN
0x676A795f...90FEB7120
0 ETH0.0457097950.71197322
Relay Message194322102024-03-14 8:58:23123 days ago1710406703IN
0x676A795f...90FEB7120
0 ETH0.0423111548.07512667
Relay Message194315142024-03-14 6:37:11123 days ago1710398231IN
0x676A795f...90FEB7120
0 ETH0.0377890645.8075309
Relay Message194311932024-03-14 5:31:47123 days ago1710394307IN
0x676A795f...90FEB7120
0 ETH0.0389518244.54060712
Relay Message194311792024-03-14 5:28:59123 days ago1710394139IN
0x676A795f...90FEB7120
0 ETH0.0400897347.54294994
Relay Message194311692024-03-14 5:26:59123 days ago1710394019IN
0x676A795f...90FEB7120
0 ETH0.0431740251.306944
Relay Message194311562024-03-14 5:24:11123 days ago1710393851IN
0x676A795f...90FEB7120
0 ETH0.0396368747.10931089
Relay Message194310302024-03-14 4:58:47123 days ago1710392327IN
0x676A795f...90FEB7120
0 ETH0.039469543.83371748
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
203157012024-07-16 1:11:5917 mins ago1721092319
0x676A795f...90FEB7120
0.001 ETH
203157012024-07-16 1:11:5917 mins ago1721092319
0x676A795f...90FEB7120
0.001 ETH
203149502024-07-15 22:40:112 hrs ago1721083211
0x676A795f...90FEB7120
0.01 ETH
203149502024-07-15 22:40:112 hrs ago1721083211
0x676A795f...90FEB7120
0.01 ETH
203146922024-07-15 21:48:353 hrs ago1721080115
0x676A795f...90FEB7120
0.2 ETH
203146922024-07-15 21:48:353 hrs ago1721080115
0x676A795f...90FEB7120
0.2 ETH
203145952024-07-15 21:29:114 hrs ago1721078951
0x676A795f...90FEB7120
0.00756953 ETH
203145952024-07-15 21:29:114 hrs ago1721078951
0x676A795f...90FEB7120
0.00756953 ETH
203144332024-07-15 20:56:354 hrs ago1721076995
0x676A795f...90FEB7120
0.001 ETH
203144332024-07-15 20:56:354 hrs ago1721076995
0x676A795f...90FEB7120
0.001 ETH
203135402024-07-15 17:56:117 hrs ago1721066171
0x676A795f...90FEB7120
3.45 ETH
203135402024-07-15 17:56:117 hrs ago1721066171
0x676A795f...90FEB7120
3.45 ETH
203134952024-07-15 17:46:597 hrs ago1721065619
0x676A795f...90FEB7120
0.6 ETH
203134952024-07-15 17:46:597 hrs ago1721065619
0x676A795f...90FEB7120
0.6 ETH
203127222024-07-15 15:11:1110 hrs ago1721056271
0x676A795f...90FEB7120
0.5 ETH
203127222024-07-15 15:11:1110 hrs ago1721056271
0x676A795f...90FEB7120
0.5 ETH
203124672024-07-15 14:19:4711 hrs ago1721053187
0x676A795f...90FEB7120
0.005 ETH
203124672024-07-15 14:19:4711 hrs ago1721053187
0x676A795f...90FEB7120
0.005 ETH
203123742024-07-15 14:01:1111 hrs ago1721052071
0x676A795f...90FEB7120
0.001 ETH
203123742024-07-15 14:01:1111 hrs ago1721052071
0x676A795f...90FEB7120
0.001 ETH
203122142024-07-15 13:29:1112 hrs ago1721050151
0x676A795f...90FEB7120
0.1 ETH
203122142024-07-15 13:29:1112 hrs ago1721050151
0x676A795f...90FEB7120
0.1 ETH
203122112024-07-15 13:28:3512 hrs ago1721050115
0x676A795f...90FEB7120
0.1 ETH
203122112024-07-15 13:28:3512 hrs ago1721050115
0x676A795f...90FEB7120
0.1 ETH
203120482024-07-15 12:55:4712 hrs ago1721048147
0x676A795f...90FEB7120
0.001 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Lib_ResolvedDelegateProxy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Lib_ResolvedDelegateProxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

/* Library Imports */
import { Lib_AddressManager } from "./Lib_AddressManager.sol";

/**
 * @title Lib_ResolvedDelegateProxy
 */
contract Lib_ResolvedDelegateProxy {
    /*************
     * Variables *
     *************/

    // Using mappings to store fields to avoid overwriting storage slots in the
    // implementation contract. For example, instead of storing these fields at
    // storage slot `0` & `1`, they are stored at `keccak256(key + slot)`.
    // See: https://solidity.readthedocs.io/en/v0.7.0/internals/layout_in_storage.html
    // NOTE: Do not use this code in your own contract system.
    //      There is a known flaw in this contract, and we will remove it from the repository
    //      in the near future. Due to the very limited way that we are using it, this flaw is
    //      not an issue in our system.
    mapping(address => string) private implementationName;
    mapping(address => Lib_AddressManager) private addressManager;

    /***************
     * Constructor *
     ***************/

    /**
     * @param _libAddressManager Address of the Lib_AddressManager.
     * @param _implementationName implementationName of the contract to proxy to.
     */
    constructor(address _libAddressManager, string memory _implementationName) {
        addressManager[address(this)] = Lib_AddressManager(_libAddressManager);
        implementationName[address(this)] = _implementationName;
    }

    /*********************
     * Fallback Function *
     *********************/

    fallback() external payable {
        address target = addressManager[address(this)].getAddress(
            (implementationName[address(this)])
        );

        require(target != address(0), "Target address must be initialized.");

        // slither-disable-next-line controlled-delegatecall
        (bool success, bytes memory returndata) = target.delegatecall(msg.data);

        if (success == true) {
            assembly {
                return(add(returndata, 0x20), mload(returndata))
            }
        } else {
            assembly {
                revert(add(returndata, 0x20), mload(returndata))
            }
        }
    }
}

File 2 of 4 : Lib_AddressManager.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.9;

/* External Imports */
import { Ownable } from "@openzeppelin/contracts/access/Ownable.sol";

/**
 * @title Lib_AddressManager
 */
contract Lib_AddressManager is Ownable {
    /**********
     * Events *
     **********/

    event AddressSet(string indexed _name, address _newAddress, address _oldAddress);

    /*************
     * Variables *
     *************/

    mapping(bytes32 => address) private addresses;

    /********************
     * Public Functions *
     ********************/

    /**
     * Changes the address associated with a particular name.
     * @param _name String name to associate an address with.
     * @param _address Address to associate with the name.
     */
    function setAddress(string memory _name, address _address) external onlyOwner {
        bytes32 nameHash = _getNameHash(_name);
        address oldAddress = addresses[nameHash];
        addresses[nameHash] = _address;

        emit AddressSet(_name, _address, oldAddress);
    }

    /**
     * Retrieves the address associated with a given name.
     * @param _name Name to retrieve an address for.
     * @return Address associated with the given name.
     */
    function getAddress(string memory _name) external view returns (address) {
        return addresses[_getNameHash(_name)];
    }

    /**********************
     * Internal Functions *
     **********************/

    /**
     * Computes the hash of a name.
     * @param _name Name to compute a hash for.
     * @return Hash of the given name.
     */
    function _getNameHash(string memory _name) internal pure returns (bytes32) {
        return keccak256(abi.encodePacked(_name));
    }
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^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 {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 4 of 4 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @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 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.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "metadata": {
    "useLiteralContent": true
  },
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_libAddressManager","type":"address"},{"internalType":"string","name":"_implementationName","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]

608060405234801561001057600080fd5b506040516104fd3803806104fd83398101604081905261002f91610125565b30600090815260016020908152604080832080546001600160a01b0319166001600160a01b038716179055828252909120825161006e92840190610076565b505050610252565b82805461008290610217565b90600052602060002090601f0160209004810192826100a457600085556100ea565b82601f106100bd57805160ff19168380011785556100ea565b828001600101855582156100ea579182015b828111156100ea5782518255916020019190600101906100cf565b506100f69291506100fa565b5090565b5b808211156100f657600081556001016100fb565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561013857600080fd5b82516001600160a01b038116811461014f57600080fd5b602084810151919350906001600160401b038082111561016e57600080fd5b818601915086601f83011261018257600080fd5b8151818111156101945761019461010f565b604051601f8201601f19908116603f011681019083821181831017156101bc576101bc61010f565b8160405282815289868487010111156101d457600080fd5b600093505b828410156101f657848401860151818501870152928501926101d9565b828411156102075760008684830101525b8096505050505050509250929050565b600181811c9082168061022b57607f821691505b6020821081141561024c57634e487b7160e01b600052602260045260246000fd5b50919050565b61029c806102616000396000f3fe6080604081815230600090815260016020908152828220549082905291812063bf40fac160e01b909352916001600160a01b039091169063bf40fac19061004790608461017e565b60206040518083038186803b15801561005f57600080fd5b505afa158015610073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100979190610226565b90506001600160a01b0381166100ff5760405162461bcd60e51b815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201526232b21760e91b606482015260840160405180910390fd5b600080826001600160a01b031660003660405161011d929190610256565b600060405180830381855af49150503d8060008114610158576040519150601f19603f3d011682016040523d82523d6000602084013e61015d565b606091505b5090925090506001821515141561017657805160208201f35b805160208201fd5b600060208083526000845481600182811c9150808316806101a057607f831692505b8583108114156101be57634e487b7160e01b85526022600452602485fd5b8786018381526020018180156101db57600181146101ec57610217565b60ff19861682528782019650610217565b60008b81526020902060005b86811015610211578154848201529085019089016101f8565b83019750505b50949998505050505050505050565b60006020828403121561023857600080fd5b81516001600160a01b038116811461024f57600080fd5b9392505050565b818382376000910190815291905056fea2646970667358221220edb025fb8656bfe68e1f6fdcfa8ab0e0c6a5e51eccebff0b181072c10fc6096564736f6c634300080900330000000000000000000000006968f3f16c3e64003f02e121cf0d5ccbf5625a420000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001a42564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000

Deployed Bytecode

0x6080604081815230600090815260016020908152828220549082905291812063bf40fac160e01b909352916001600160a01b039091169063bf40fac19061004790608461017e565b60206040518083038186803b15801561005f57600080fd5b505afa158015610073573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100979190610226565b90506001600160a01b0381166100ff5760405162461bcd60e51b815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201526232b21760e91b606482015260840160405180910390fd5b600080826001600160a01b031660003660405161011d929190610256565b600060405180830381855af49150503d8060008114610158576040519150601f19603f3d011682016040523d82523d6000602084013e61015d565b606091505b5090925090506001821515141561017657805160208201f35b805160208201fd5b600060208083526000845481600182811c9150808316806101a057607f831692505b8583108114156101be57634e487b7160e01b85526022600452602485fd5b8786018381526020018180156101db57600181146101ec57610217565b60ff19861682528782019650610217565b60008b81526020902060005b86811015610211578154848201529085019089016101f8565b83019750505b50949998505050505050505050565b60006020828403121561023857600080fd5b81516001600160a01b038116811461024f57600080fd5b9392505050565b818382376000910190815291905056fea2646970667358221220edb025fb8656bfe68e1f6fdcfa8ab0e0c6a5e51eccebff0b181072c10fc6096564736f6c63430008090033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000006968f3f16c3e64003f02e121cf0d5ccbf5625a420000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001a42564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000

-----Decoded View---------------
Arg [0] : _libAddressManager (address): 0x6968f3F16C3e64003F02E121cf0D5CCBf5625a42
Arg [1] : _implementationName (string): BVM_L1CrossDomainMessenger

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000006968f3f16c3e64003f02e121cf0d5ccbf5625a42
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000001a
Arg [3] : 42564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000


Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.