EthereumEthereum
0xad...7a3d
Carbon Development Contract

Carbon Development Contract

CDC

代币
市值
$1.00
 
价格
2%
此合同的源代码已经过验证!
合同元数据
编译器
0.8.22+commit.4fc1097e
语言
Solidity
合同源代码
文件 1 的 2:proxy.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;

contract Proxy {
    address public owner;
    address public target;

    event ProxyTargetSet(address target);
    event ProxyOwnerChanged(address owner);

    constructor() {
        owner = msg.sender;
    }

    /**
   * @dev Throws if called by any account other than the owner.
   */
    modifier onlyOwner() {
        require(msg.sender == owner, "Not owner");
        _;
    }

    function setTarget(address _implementation) public onlyOwner {
        target = _implementation;
        emit ProxyTargetSet(_implementation);
    }
    function setOwner(address _owner) external onlyOwner {
        owner = _owner;
        emit ProxyOwnerChanged(_owner);
    }

    fallback() external {
        address _impl = target;
        require(_impl != address(0), "Target not set");
        assembly {
            calldatacopy(0, 0, calldatasize())

            let result := delegatecall(gas(), _impl, 0, calldatasize(), 0, 0)

            returndatacopy(0, 0, returndatasize())

            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }
}
合同源代码
文件 2 的 2:proxyCDC.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.13;
import "./proxy.sol";
contract ProxyCDC is Proxy{

}
设置
{
  "compilationTarget": {
    "contracts/Proxy/proxyCDC.sol": "ProxyCDC"
  },
  "evmVersion": "shanghai",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"ProxyOwnerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"}],"name":"ProxyTargetSet","type":"event"},{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_implementation","type":"address"}],"name":"setTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"target","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]