[
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "previousOwner",
                "type": "address"
            },
            {
                "indexed": true,
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
            }
        ],
        "name": "OwnershipTransferred",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "Paused",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "payer",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "tokenId",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "amount",
                "type": "uint256"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "balance",
                "type": "uint256"
            }
        ],
        "name": "Received",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": true,
                "internalType": "address",
                "name": "payee",
                "type": "address"
            },
            {
                "indexed": false,
                "internalType": "uint256",
                "name": "amount",
                "type": "uint256"
            }
        ],
        "name": "Sent",
        "type": "event"
    },
    {
        "anonymous": false,
        "inputs": [
            {
                "indexed": false,
                "internalType": "address",
                "name": "account",
                "type": "address"
            }
        ],
        "name": "Unpaused",
        "type": "event"
    },
    {
        "inputs": [],
        "name": "currentPrice",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "currentTokenId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes",
                "name": "extensionData_",
                "type": "bytes"
            }
        ],
        "name": "decodeGrantRoleExtension",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "address",
                        "name": "roleReceiver",
                        "type": "address"
                    },
                    {
                        "internalType": "bytes32",
                        "name": "role",
                        "type": "bytes32"
                    },
                    {
                        "internalType": "uint256",
                        "name": "signedAt",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "signer",
                        "type": "address"
                    },
                    {
                        "internalType": "bytes",
                        "name": "signature",
                        "type": "bytes"
                    }
                ],
                "internalType": "struct ISimpleNftCrowdsaleInitializable.GrantRoleInitParams",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes",
                "name": "initializerEncoded_",
                "type": "bytes"
            }
        ],
        "name": "decodeInitializer",
        "outputs": [
            {
                "components": [
                    {
                        "internalType": "uint256",
                        "name": "currentPrice",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "maxCap",
                        "type": "uint256"
                    },
                    {
                        "internalType": "uint256",
                        "name": "startingId",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address payable",
                        "name": "wallet",
                        "type": "address"
                    },
                    {
                        "internalType": "address",
                        "name": "nftAddress",
                        "type": "address"
                    },
                    {
                        "internalType": "uint256",
                        "name": "publicSaleTime",
                        "type": "uint256"
                    },
                    {
                        "internalType": "address",
                        "name": "owner",
                        "type": "address"
                    },
                    {
                        "internalType": "enum ISimpleNftCrowdsaleInitializable.ParamsExtension",
                        "name": "extensionType",
                        "type": "uint8"
                    },
                    {
                        "internalType": "bytes",
                        "name": "extensionData",
                        "type": "bytes"
                    }
                ],
                "internalType": "struct ISimpleNftCrowdsaleInitializable.RegularInitParams",
                "name": "",
                "type": "tuple"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "roleReceiver_",
                "type": "address"
            },
            {
                "internalType": "bytes32",
                "name": "role_",
                "type": "bytes32"
            },
            {
                "internalType": "uint256",
                "name": "signedAt_",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "signer_",
                "type": "address"
            },
            {
                "internalType": "bytes",
                "name": "signature_",
                "type": "bytes"
            }
        ],
        "name": "encodeGrantRoleExtension",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "currentPrice_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "maxCap_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "startingId_",
                "type": "uint256"
            },
            {
                "internalType": "address payable",
                "name": "wallet_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "nftAddress_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "publicSaleTime_",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "owner_",
                "type": "address"
            },
            {
                "internalType": "enum ISimpleNftCrowdsaleInitializable.ParamsExtension",
                "name": "extensionType_",
                "type": "uint8"
            },
            {
                "internalType": "bytes",
                "name": "extensionData_",
                "type": "bytes"
            }
        ],
        "name": "encodeInitializer",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "currentPrice_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "maxCap_",
                "type": "uint256"
            },
            {
                "internalType": "uint256",
                "name": "startingId_",
                "type": "uint256"
            },
            {
                "internalType": "address payable",
                "name": "wallet_",
                "type": "address"
            },
            {
                "internalType": "address",
                "name": "nftAddress_",
                "type": "address"
            },
            {
                "internalType": "uint256",
                "name": "publicSaleTime_",
                "type": "uint256"
            },
            {
                "internalType": "address",
                "name": "owner_",
                "type": "address"
            },
            {
                "internalType": "enum ISimpleNftCrowdsaleInitializable.ParamsExtension",
                "name": "extensionType_",
                "type": "uint8"
            },
            {
                "internalType": "bytes",
                "name": "extensionData_",
                "type": "bytes"
            }
        ],
        "name": "encodeInitializerParams",
        "outputs": [
            {
                "internalType": "bytes",
                "name": "",
                "type": "bytes"
            }
        ],
        "stateMutability": "pure",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "getWallet",
        "outputs": [
            {
                "internalType": "address payable",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "bytes",
                "name": "initializerEncoded_",
                "type": "bytes"
            }
        ],
        "name": "initialize",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "maxCap",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "nftTokenAddress",
        "outputs": [
            {
                "internalType": "contract ITokenSellable",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "owner",
        "outputs": [
            {
                "internalType": "address",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "paused",
        "outputs": [
            {
                "internalType": "bool",
                "name": "",
                "type": "bool"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "publicSaleTime",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address payable",
                "name": "receiver",
                "type": "address"
            }
        ],
        "name": "purchaseTokenFor",
        "outputs": [],
        "stateMutability": "payable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "renounceOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "currentPrice_",
                "type": "uint256"
            }
        ],
        "name": "setCurrentPrice",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "uint256",
                "name": "_publicSaleTime",
                "type": "uint256"
            }
        ],
        "name": "setPublicSaleTime",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address payable",
                "name": "_newWallet",
                "type": "address"
            }
        ],
        "name": "setWallet",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "startingId",
        "outputs": [
            {
                "internalType": "uint256",
                "name": "",
                "type": "uint256"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "inputs": [
            {
                "internalType": "address",
                "name": "newOwner",
                "type": "address"
            }
        ],
        "name": "transferOwnership",
        "outputs": [],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [],
        "name": "wallet",
        "outputs": [
            {
                "internalType": "address payable",
                "name": "",
                "type": "address"
            }
        ],
        "stateMutability": "view",
        "type": "function"
    },
    {
        "stateMutability": "payable",
        "type": "receive"
    }
]
