ETH Price: $2,312.68 (-0.25%)

Contract

0xfBE93ba0a2Df92A8e8D40cE00acCF9248a6Fc812
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Send Message122079152021-04-09 20:48:101257 days ago1618001290IN
0xfBE93ba0...48a6Fc812
0 ETH0.03435451106.7
Send Message119506192021-03-01 6:07:531297 days ago1614578873IN
0xfBE93ba0...48a6Fc812
0 ETH0.0152905367
Relay Message117883112021-02-04 7:09:091322 days ago1612422549IN
0xfBE93ba0...48a6Fc812
0 ETH0.07007263133.92857299
Relay Message117882652021-02-04 7:00:261322 days ago1612422026IN
0xfBE93ba0...48a6Fc812
0 ETH0.07364789146.50000325
Relay Message117882622021-02-04 6:59:381322 days ago1612421978IN
0xfBE93ba0...48a6Fc812
0 ETH0.07681244146.50000325
Relay Message117882582021-02-04 6:58:511322 days ago1612421931IN
0xfBE93ba0...48a6Fc812
0 ETH0.0699054143.00000145
Relay Message117882452021-02-04 6:55:231322 days ago1612421723IN
0xfBE93ba0...48a6Fc812
0 ETH0.08002553152.9803135
Relay Message117882362021-02-04 6:54:021322 days ago1612421642IN
0xfBE93ba0...48a6Fc812
0 ETH0.07439524152.9803135
Relay Message117882312021-02-04 6:52:421322 days ago1612421562IN
0xfBE93ba0...48a6Fc812
0 ETH0.08001421152.9803135
Relay Message117882282021-02-04 6:52:081322 days ago1612421528IN
0xfBE93ba0...48a6Fc812
0 ETH0.0746396142
Relay Message117882092021-02-04 6:47:281322 days ago1612421248IN
0xfBE93ba0...48a6Fc812
0 ETH0.07112644140
Relay Message117882052021-02-04 6:46:331322 days ago1612421193IN
0xfBE93ba0...48a6Fc812
0 ETH0.07742706142
Relay Message117881952021-02-04 6:44:141322 days ago1612421054IN
0xfBE93ba0...48a6Fc812
0 ETH0.07540876144
Relay Message117881912021-02-04 6:43:351322 days ago1612421015IN
0xfBE93ba0...48a6Fc812
0 ETH0.08057808158.4
Relay Message117881712021-02-04 6:40:021322 days ago1612420802IN
0xfBE93ba0...48a6Fc812
0 ETH0.08034916158
Relay Message117881642021-02-04 6:37:521322 days ago1612420672IN
0xfBE93ba0...48a6Fc812
0 ETH0.08255105158
Relay Message117553332021-01-30 5:13:341327 days ago1611983614IN
0xfBE93ba0...48a6Fc812
0 ETH0.0276955855
Relay Message117553332021-01-30 5:13:341327 days ago1611983614IN
0xfBE93ba0...48a6Fc812
0 ETH0.0286937755
Relay Message117553322021-01-30 5:13:261327 days ago1611983606IN
0xfBE93ba0...48a6Fc812
0 ETH0.026652953.00000145
Relay Message117553322021-01-30 5:13:261327 days ago1611983606IN
0xfBE93ba0...48a6Fc812
0 ETH0.0269304352.00000145
Relay Message117553322021-01-30 5:13:261327 days ago1611983606IN
0xfBE93ba0...48a6Fc812
0 ETH0.0268965352
Relay Message117553312021-01-30 5:13:141327 days ago1611983594IN
0xfBE93ba0...48a6Fc812
0 ETH0.024952352
Relay Message117553302021-01-30 5:13:121327 days ago1611983592IN
0xfBE93ba0...48a6Fc812
0 ETH0.0265191152
Relay Message117553142021-01-30 5:09:121327 days ago1611983352IN
0xfBE93ba0...48a6Fc812
0 ETH0.0261347852
Relay Message117553142021-01-30 5:09:121327 days ago1611983352IN
0xfBE93ba0...48a6Fc812
0 ETH0.0261205852
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Lib_ResolvedDelegateProxy

Compiler Version
v0.7.6+commit.7338295f

Optimization Enabled:
Yes with 200 runs

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

/* 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 `hash(${FIELD_NAME} + address(this))`
    // See: https://solidity.readthedocs.io/en/v0.7.0/internals/layout_in_storage.html
    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
    {
        address target = addressManager[address(this)].getAddress((implementationName[address(this)]));
        require(
            target != address(0),
            "Target address must be initialized."
        );

        (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 3 : Lib_AddressManager.sol
// SPDX-License-Identifier: MIT
// +build ovm
pragma solidity >0.5.0 <0.8.0;

/* Contract Imports */
import { Ownable } from "./Lib_Ownable.sol";

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

    /**********
     * Events *
     **********/

    event AddressSet(
        string _name,
        address _newAddress
    );

    /*******************************************
     * Contract Variables: Internal Accounting *
     *******************************************/

    mapping (bytes32 => address) private addresses;


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

    function setAddress(
        string memory _name,
        address _address
    )
        public
        onlyOwner
    {
        emit AddressSet(_name, _address);
        addresses[_getNameHash(_name)] = _address;
    }

    function getAddress(
        string memory _name
    )
        public
        view
        returns (address)
    {
        return addresses[_getNameHash(_name)];
    }


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

    function _getNameHash(
        string memory _name
    )
        internal
        pure
        returns (
            bytes32 _hash
        )
    {
        return keccak256(abi.encodePacked(_name));
    }
}

File 3 of 3 : Lib_Ownable.sol
// SPDX-License-Identifier: MIT
// +build ovm
pragma solidity >0.5.0 <0.8.0;

/**
 * @title Ownable
 * @dev Adapted from https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/access/Ownable.sol
 */
abstract contract Ownable {

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

    address public owner;


    /**********
     * Events *
     **********/

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


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

    constructor() internal {
        owner = msg.sender;
        emit OwnershipTransferred(address(0), owner);
    }


    /**********************
     * Function Modifiers *
     **********************/

    modifier onlyOwner() {
        require(
            owner == msg.sender,
            "Ownable: caller is not the owner"
        );
        _;
    }


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

    function renounceOwnership()
        public
        virtual
        onlyOwner
    {
        emit OwnershipTransferred(owner, address(0));
        owner = address(0);
    }

    function transferOwnership(address _newOwner)
        public
        virtual
        onlyOwner
    {
        require(
            _newOwner != address(0),
            "Ownable: new owner cannot be the zero address"
        );

        emit OwnershipTransferred(owner, _newOwner);
        owner = _newOwner;
    }
}

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

Contract Security Audit

Contract ABI

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

608060405234801561001057600080fd5b506040516104173803806104178339818101604052604081101561003357600080fd5b81516020830180516040519294929383019291908464010000000082111561005a57600080fd5b90830190602082018581111561006f57600080fd5b825164010000000081118282018810171561008957600080fd5b82525081516020918201929091019080838360005b838110156100b657818101518382015260200161009e565b50505050905090810190601f1680156100e35780820380516001836020036101000a031916815260200191505b5060409081523060009081526001602090815282822080546001600160a01b0319166001600160a01b038a16179055818152919020855161012c95509093509085019150610134565b5050506101d5565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261016a57600085556101b0565b82601f1061018357805160ff19168380011785556101b0565b828001600101855582156101b0579182015b828111156101b0578251825591602001919060010190610195565b506101bc9291506101c0565b5090565b5b808211156101bc57600081556001016101c1565b610233806101e46000396000f3fe608060405234801561001057600080fd5b5030600090815260016020818152604080842054848352818520915163bf40fac160e01b815260048101938452825460026101009682161596909602600019011694909404602485018190526001600160a01b039091169363bf40fac19391829160440190849080156100c45780601f10610099576101008083540402835291602001916100c4565b820191906000526020600020905b8154815290600101906020018083116100a757829003601f168201915b50509250505060206040518083038186803b1580156100e257600080fd5b505afa1580156100f6573d6000803e3d6000fd5b505050506040513d602081101561010c57600080fd5b505190506001600160a01b0381166101555760405162461bcd60e51b81526004018080602001828103825260238152602001806101db6023913960400191505060405180910390fd5b600080826001600160a01b03166000366040518083838082843760405192019450600093509091505080830381855af49150503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b509092509050600182151514156101d257805160208201f35b805160208201fdfe5461726765742061646472657373206d75737420626520696e697469616c697a65642ea264697066735822122022cf2e6b66b75ae0d7a780704aa9d326dd541b72493bb1a405188ed67fed0b5964736f6c634300070600330000000000000000000000001de8cfd4c1a486200286073ae91de6e8099519f10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001a4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b5030600090815260016020818152604080842054848352818520915163bf40fac160e01b815260048101938452825460026101009682161596909602600019011694909404602485018190526001600160a01b039091169363bf40fac19391829160440190849080156100c45780601f10610099576101008083540402835291602001916100c4565b820191906000526020600020905b8154815290600101906020018083116100a757829003601f168201915b50509250505060206040518083038186803b1580156100e257600080fd5b505afa1580156100f6573d6000803e3d6000fd5b505050506040513d602081101561010c57600080fd5b505190506001600160a01b0381166101555760405162461bcd60e51b81526004018080602001828103825260238152602001806101db6023913960400191505060405180910390fd5b600080826001600160a01b03166000366040518083838082843760405192019450600093509091505080830381855af49150503d80600081146101b4576040519150601f19603f3d011682016040523d82523d6000602084013e6101b9565b606091505b509092509050600182151514156101d257805160208201f35b805160208201fdfe5461726765742061646472657373206d75737420626520696e697469616c697a65642ea264697066735822122022cf2e6b66b75ae0d7a780704aa9d326dd541b72493bb1a405188ed67fed0b5964736f6c63430007060033

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

0000000000000000000000001de8cfd4c1a486200286073ae91de6e8099519f10000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000001a4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000

-----Decoded View---------------
Arg [0] : _libAddressManager (address): 0x1De8CFD4C1A486200286073aE91DE6e8099519f1
Arg [1] : _implementationName (string): OVM_L1CrossDomainMessenger

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000001de8cfd4c1a486200286073ae91de6e8099519f1
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [2] : 000000000000000000000000000000000000000000000000000000000000001a
Arg [3] : 4f564d5f4c3143726f7373446f6d61696e4d657373656e676572000000000000


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  ]

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.