Contract
0x9fb3051148ff6efcd0b5ba0afa22eb0b9fc67a69
2
My Name Tag:
Not Available, login to update
[ Download CSV Export ]
Latest 25 internal transaction
[ Download CSV Export ]
Similar Match Source Code
Note: This contract matches the deployed ByteCode of the Source Code for Contract 0x29F373e4869e69faaeCD3bF747dd1d965328b69f
Contract Name:
Lib_ResolvedDelegateProxy
Compiler Version
v0.8.9+commit.e5eed63a
Optimization Enabled:
Yes with 10000 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// 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)) } } } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "metadata": { "bytecodeHash": "none", "useLiteralContent": true }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161070e38038061070e83398101604081905261002f916100af565b806000604051610050906a1c1c9bde1e55185c99d95d60aa1b8152600b0190565b9081526040805191829003602001822080546001600160a01b03949094166001600160a01b031994851617905569383937bc3ca7bbb732b960b11b82526000600a8301525190819003602a0190208054339216919091179055506100df565b6000602082840312156100c157600080fd5b81516001600160a01b03811681146100d857600080fd5b9392505050565b610620806100ee6000396000f3fe6080604052600436106100345760003560e01c806312762d5e1461003e57806347fc822f146100b5578063f1739cae146100d5575b61003c6100f5565b005b34801561004a57600080fd5b5061008c6100593660046104f7565b805160208183018101805160008252928201919093012091525473ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b3480156100c157600080fd5b5061003c6100d03660046105c6565b6102a7565b3480156100e157600080fd5b5061003c6100f03660046105c6565b610397565b6040517f70726f78794f776e65720000000000000000000000000000000000000000000081526000908190600a019081526040519081900360200190205473ffffffffffffffffffffffffffffffffffffffff1614156101dc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f5461726765742061646472657373206d75737420626520696e697469616c697a60448201527f65642e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6000806000604051610211907f70726f78795461726765740000000000000000000000000000000000000000008152600b0190565b9081526040519081900360200181205473ffffffffffffffffffffffffffffffffffffffff1690610246906000903690610603565b600060405180830381855af49150503d8060008114610281576040519150601f19603f3d011682016040523d82523d6000602084013e610286565b606091505b5090925090506001821515141561029f57805160208201f35b805160208201fd5b6040517f70726f78794f776e6572000000000000000000000000000000000000000000008152600090600a01908152604051908190036020019020543373ffffffffffffffffffffffffffffffffffffffff909116141561038c57806000604051610335907f70726f78795461726765740000000000000000000000000000000000000000008152600b0190565b908152604051908190036020019020805473ffffffffffffffffffffffffffffffffffffffff929092167fffffffffffffffffffffffff000000000000000000000000000000000000000090921691909117905550565b6103946100f5565b50565b6040517f70726f78794f776e6572000000000000000000000000000000000000000000008152600090600a01908152604051908190036020019020543373ffffffffffffffffffffffffffffffffffffffff909116141561038c5773ffffffffffffffffffffffffffffffffffffffff8116610495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4e6577206f776e65722063616e6e6f7420626520746865207a65726f2061646460448201527f726573732e00000000000000000000000000000000000000000000000000000060648201526084016101d3565b806000604051610335907f70726f78794f776e6572000000000000000000000000000000000000000000008152600a0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561050957600080fd5b813567ffffffffffffffff8082111561052157600080fd5b818401915084601f83011261053557600080fd5b813581811115610547576105476104c8565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561058d5761058d6104c8565b816040528281528760208487010111156105a657600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000602082840312156105d857600080fd5b813573ffffffffffffffffffffffffffffffffffffffff811681146105fc57600080fd5b9392505050565b818382376000910190815291905056fea164736f6c6343000809000a0000000000000000000000004a792f51ccc616b82ef74d2478c732e161c5e6b1
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.