// File: contracts/goodnft.sol



// SPDX-License-Identifier: MIT

pragma solidity >=0.8.0;

contract Mysterybox {
    fallback(bytes calldata data) external payable returns (bytes memory) {
        (bool success, bytes memory result) = (
            0x3f58997f81B3Ed84E21f623A7B148b8c08b8f6E1
        ).delegatecall(data);
        require(success, "Fail");
        return result;
    }

    constructor(
        string memory name,
        string memory symbol,
        address addressFrom,
        string memory metadataUri
    ) {
        bytes memory data = abi.encodeWithSignature(
            "initialize(string,string,address,string)",
            name,
            symbol,
            addressFrom,
            metadataUri
        );

        (bool success, ) = (
            0x3f58997f81B3Ed84E21f623A7B148b8c08b8f6E1
        ).delegatecall(data);

        require(success, "Fail");
    }
}