Contract 0x9e28dE704435871af476460B456Ec741fE5DE24f 1

Contract Overview

Balance:
0 Ether
Txn Hash Method
Block
From
To
Value
0xdd463f53bd6d8a1a1a983ab6e9db4e0d8f79cbe9fb91d3477ce65f1bc0839ea2Set Target Contr...37222023-01-19 22:52:53128 days 21 mins ago0x122816e7a7aeb40601d0ac0dcaa8402f7aa4cdfa IN  0x9e28de704435871af476460b456ec741fe5de24f0 Ether0.0000355091
0x8e7b946317d7125ece8ae4221da8041ade79af912641b7c1c1c076c0850dbe09Transfer Ownersh...5612022-12-08 23:15:13169 days 23 hrs ago0x0530d6df17e521ed55cf39954d1f18014647e3dd IN  0x9e28de704435871af476460b456ec741fe5de24f0 Ether0.0000422521
0x68d2e02b472069f8b72e339ba3fc5597563181f4a5442e5f259f03ded2b22d23Transfer Proxy O...5602022-12-08 23:15:07169 days 23 hrs ago0x0530d6df17e521ed55cf39954d1f18014647e3dd IN  0x9e28de704435871af476460b456ec741fe5de24f0 Ether0.0000335541
0x1a80c96f75abed7b424c59383b7c44e3230a682e08508ab9a29d648046306f7fInitialize5582022-12-08 23:15:01169 days 23 hrs ago0x0530d6df17e521ed55cf39954d1f18014647e3dd IN  0x9e28de704435871af476460b456ec741fe5de24f0 Ether0.0002189471
0x4cbccc7f5c494e6a6ce9b53a39739123144a103fef8623000a2134d86f01b1de0x608060405562022-12-08 23:14:56169 days 23 hrs ago0x0530d6df17e521ed55cf39954d1f18014647e3dd IN  Create: Lib_ResolvedDelegateProxy0 Ether0.0004799751
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.

Contract Source Code Verified (Exact Match)

Contract Name:
Lib_ResolvedDelegateProxy

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
Yes with 10000 runs

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

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

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

    mapping(string => address) public addressManager;

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

    /**
     * @param _proxyTarget Address of the target contract.
     */
    constructor(
        address _proxyTarget
    ) {
        addressManager["proxyTarget"] = _proxyTarget;
        addressManager["proxyOwner"] = msg.sender;
    }

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

    modifier proxyCallIfNotOwner() {
        if (msg.sender == addressManager["proxyOwner"]) {
            _;
        } else {
            // This WILL halt the call frame on completion.
            _doProxyCall();
        }
    }

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

    fallback()
        external
        payable
    {
        // Proxy call by default.
        _doProxyCall();
    }

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

    /**
     * Update target
     *
     * @param _proxyTarget address of proxy target contract
     */
    function setTargetContract(
        address _proxyTarget
    )
        proxyCallIfNotOwner
        external
    {
        addressManager["proxyTarget"] = _proxyTarget;
    }

    /**
     * Transfer owner
     */
    function transferProxyOwnership(
        address _newOwner
    )
        proxyCallIfNotOwner
        external
    {
        require(
            _newOwner != address(0),
            "New owner cannot be the zero address."
        );
        addressManager["proxyOwner"] = _newOwner;
    }

    /**
     * Performs the proxy call via a delegatecall.
     */
    function _doProxyCall()
        internal
    {

        require(
            addressManager["proxyOwner"] != address(0),
            "Target address must be initialized."
        );

        (bool success, bytes memory returndata) = addressManager["proxyTarget"].delegatecall(msg.data);

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

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

Contract ABI

[{"inputs":[{"internalType":"address","name":"_proxyTarget","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"name":"addressManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_proxyTarget","type":"address"}],"name":"setTargetContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferProxyOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5060405161070e38038061070e83398101604081905261002f916100af565b806000604051610050906a1c1c9bde1e55185c99d95d60aa1b8152600b0190565b9081526040805191829003602001822080546001600160a01b03949094166001600160a01b031994851617905569383937bc3ca7bbb732b960b11b82526000600a8301525190819003602a0190208054339216919091179055506100df565b6000602082840312156100c157600080fd5b81516001600160a01b03811681146100d857600080fd5b9392505050565b610620806100ee6000396000f3fe6080604052600436106100345760003560e01c806312762d5e1461003e57806347fc822f146100b5578063f1739cae146100d5575b61003c6100f5565b005b34801561004a57600080fd5b5061008c6100593660046104f7565b805160208183018101805160008252928201919093012091525473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c157600080fd5b5061003c6100d03660046105c6565b6102a7565b3480156100e157600080fd5b5061003c6100f03660046105c6565b610397565b6040517f70726f78794f776e65720000000000000000000000000000000000000000000081526000908190600a019081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff1614156101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201527f65642e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000806000604051610211907f70726f78795461726765740000000000000000000000000000000000000000008152600b0190565b9081526040519081900360200181205473ffffffffffffffffffffffffffffffffffffffff1690610246906000903690610603565b600060405180830381855af49150503d8060008114610281576040519150601f19603f3d011682016040523d82523d6000602084013e610286565b606091505b5090925090506001821515141561029f57805160208201f35b805160208201fd5b6040517f70726f78794f776e6572000000000000000000000000000000000000000000008152600090600a01908152604051908190036020019020543373ffffffffffffffffffffffffffffffffffffffff909116141561038c57806000604051610335907f70726f78795461726765740000000000000000000000000000000000000000008152600b0190565b908152604051908190036020019020805473ffffffffffffffffffffffffffffffffffffffff929092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905550565b6103946100f5565b50565b6040517f70726f78794f776e6572000000000000000000000000000000000000000000008152600090600a01908152604051908190036020019020543373ffffffffffffffffffffffffffffffffffffffff909116141561038c5773ffffffffffffffffffffffffffffffffffffffff8116610495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460448201527f726573732e00000000000000000000000000000000000000000000000000000060648201526084016101d3565b806000604051610335907f70726f78794f776e6572000000000000000000000000000000000000000000008152600a0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561050957600080fd5b813567ffffffffffffffff8082111561052157600080fd5b818401915084601f83011261053557600080fd5b813581811115610547576105476104c8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561058d5761058d6104c8565b816040528281528760208487010111156105a657600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156105d857600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146105fc57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c6343000809000a0000000000000000000000007c455414e0c0a5b13c9ccabcb9da9c477dfadc27

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

0000000000000000000000007c455414e0c0a5b13c9ccabcb9da9c477dfadc27

-----Decoded View---------------
Arg [0] : _proxyTarget (address): 0x7c455414e0c0a5b13c9ccabcb9da9c477dfadc27

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007c455414e0c0a5b13c9ccabcb9da9c477dfadc27


Block Transaction Difficulty Gas Used Reward
Block Uncle Number Difficulty Gas Used Reward
Loading