账户
0x9c...6348
0x9c...6348

0x9c...6348

$500
此合同的源代码已经过验证!
合同元数据
编译器
0.8.15+commit.e14f2714
语言
Solidity
合同源代码
文件 1 的 1:Proxy.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.4;

contract Proxy {

    // keccak256("eip1967.proxy.implementation") = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc

    constructor(address implementation) {
        assembly {
            sstore(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc, implementation)
        }

        // web3.utils.sha3("initialize()").substr(0, 10) = 0x8129fc1c
        (bool success, bytes memory result) = implementation.delegatecall(abi.encodePacked(uint32(0x8129fc1c)));
        require(success, "Constructor call failed!");
    }

    function _delegate() internal virtual {
        assembly {
            let implementation := sload(0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc)
            calldatacopy(0, 0, calldatasize())
            let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0)
            returndatacopy(0, 0, returndatasize())
            switch result
            case 0 {
                revert(0, returndatasize())
            }
            default {
                return(0, returndatasize())
            }
        }
    }

    fallback() external payable virtual {
        _delegate();
    }

    receive() external payable virtual {
        _delegate();
    }

}
设置
{
  "compilationTarget": {
    "contracts/Proxy.sol": "Proxy"
  },
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"stateMutability":"payable","type":"receive"}]