账户
0x4d...3ecf
0x4d...3Ecf

0x4d...3Ecf

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

/**
 * @title Singleton Factory (EIP-2470)
 * @dev Extended version from EIP-2470 for testing purposes
 * @author Ricardo Guilherme Schmidt (Status Research & Development GmbH)
 */
contract SingletonFactory {
    address public lastDeployedContract;
    event Deployed(address createdContract, bytes32 salt);

    /**
     * @notice Deploys `initCode` using `salt` for defining the deterministic address.
     * @param initCode Initialization code.
     * @param salt Arbitrary value to modify resulting address.
     * @return createdContract Created contract address.
     */
    function deploy(bytes memory initCode, bytes32 salt) public returns (address payable createdContract) {
        // solhint-disable-next-line no-inline-assembly
        assembly {
            createdContract := create2(0, add(initCode, 0x20), mload(initCode), salt)
        }

        require(createdContract != address(0), "SingletonFactory: Create2 failed");
        lastDeployedContract = createdContract;
        emit Deployed(createdContract, salt);
    }
}
设置
{
  "compilationTarget": {
    "SingletonFactory.sol": "SingletonFactory"
  },
  "evmVersion": "london",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"createdContract","type":"address"},{"indexed":false,"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"Deployed","type":"event"},{"inputs":[{"internalType":"bytes","name":"initCode","type":"bytes"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"name":"deploy","outputs":[{"internalType":"address payable","name":"createdContract","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastDeployedContract","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]