EthereumEthereum
0x66...28Da
Etherland

Etherland

LANDID

收藏品
底价
2.22 ETH
$2,345.34
大小
326
收藏品
所有者
189
58% 独特的所有者
此合同的源代码已经过验证!
合同元数据
编译器
0.6.2+commit.bacdbe57
语言
Solidity
合同源代码
文件 1 的 1:Proxy.sol
pragma solidity 0.6.2;

/**
* @title Proxy 
* @dev Etherland - ERC1822 Proxy contract implementation
* @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-1822.md
*/
contract Proxy {
    constructor(bytes memory constructData, address contractLogic) public {
        assembly { 
            sstore(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7, contractLogic)
        }
        (bool success, bytes memory _ ) = contractLogic.delegatecall(constructData); 
        require(success, "Construction failed");
    }

    fallback() external payable {
        assembly { 
            let contractLogic := sload(0xc5f16f0fcc639fa48a6947836d9850f504798523bf8c9a3a87d5876cf622bcf7)
            calldatacopy(0x0, 0x0, calldatasize())
            let success := delegatecall(sub(gas(), 10000), contractLogic, 0x0, calldatasize(), 0, 0)
            let retSz := returndatasize()
            returndatacopy(0, 0, retSz)
            switch success
            case 0 {
                revert(0, retSz)
            }
            default {
                return(0, retSz)
            }
        }
    }
}
设置
{
  "compilationTarget": {
    "Proxy.sol": "Proxy"
  },
  "evmVersion": "istanbul",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"inputs":[{"internalType":"bytes","name":"constructData","type":"bytes"},{"internalType":"address","name":"contractLogic","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"}]