{
    "schemaVersion": "2.0.0",
    "contractName": "DummyERC721Token",
    "compilerOutput": {
        "abi": [
            {
                "inputs": [
                    { "internalType": "string", "name": "_name", "type": "string" },
                    { "internalType": "string", "name": "_symbol", "type": "string" }
                ],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            },
            {
                "anonymous": false,
                "inputs": [
                    { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" },
                    { "indexed": true, "internalType": "address", "name": "_approved", "type": "address" },
                    { "indexed": true, "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "Approval",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" },
                    { "indexed": true, "internalType": "address", "name": "_operator", "type": "address" },
                    { "indexed": false, "internalType": "bool", "name": "_approved", "type": "bool" }
                ],
                "name": "ApprovalForAll",
                "type": "event"
            },
            {
                "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": true, "internalType": "address", "name": "_from", "type": "address" },
                    { "indexed": true, "internalType": "address", "name": "_to", "type": "address" },
                    { "indexed": true, "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "Transfer",
                "type": "event"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_approved", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "approve",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "internalType": "address", "name": "_owner", "type": "address" }],
                "name": "balanceOf",
                "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_owner", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "burn",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
                "name": "getApproved",
                "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    { "internalType": "address", "name": "_owner", "type": "address" },
                    { "internalType": "address", "name": "_operator", "type": "address" }
                ],
                "name": "isApprovedForAll",
                "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_to", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "mint",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "name",
                "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "owner",
                "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "internalType": "uint256", "name": "_tokenId", "type": "uint256" }],
                "name": "ownerOf",
                "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_from", "type": "address" },
                    { "internalType": "address", "name": "_to", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "safeTransferFrom",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_from", "type": "address" },
                    { "internalType": "address", "name": "_to", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" },
                    { "internalType": "bytes", "name": "_data", "type": "bytes" }
                ],
                "name": "safeTransferFrom",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_operator", "type": "address" },
                    { "internalType": "bool", "name": "_approved", "type": "bool" }
                ],
                "name": "setApprovalForAll",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "symbol",
                "outputs": [{ "internalType": "string", "name": "", "type": "string" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "_from", "type": "address" },
                    { "internalType": "address", "name": "_to", "type": "address" },
                    { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }
                ],
                "name": "transferFrom",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [{ "internalType": "address", "name": "newOwner", "type": "address" }],
                "name": "transferOwnership",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            }
        ],
        "devdoc": {
            "methods": {
                "approve(address,uint256)": {
                    "details": "The zero address indicates there is no approved address.      Throws unless `msg.sender` is the current NFT owner, or an authorized      operator of the current owner.",
                    "params": { "_approved": "The new approved NFT controller", "_tokenId": "The NFT to approve" }
                },
                "balanceOf(address)": {
                    "details": "NFTs assigned to the zero address are considered invalid, and this      function throws for queries about the zero address.",
                    "params": { "_owner": "An address for whom to query the balance" },
                    "return": "The number of NFTs owned by `_owner`, possibly zero"
                },
                "burn(address,uint256)": {
                    "details": "Function to burn a token      Reverts if the given token ID doesn't exist or not called by contract owner",
                    "params": {
                        "_owner": "Owner of token with given token ID",
                        "_tokenId": "ID of the token to be burned by the msg.sender"
                    }
                },
                "getApproved(uint256)": {
                    "details": "Throws if `_tokenId` is not a valid NFT.",
                    "params": { "_tokenId": "The NFT to find the approved address for" },
                    "return": "The approved address for this NFT, or the zero address if there is none"
                },
                "isApprovedForAll(address,address)": {
                    "params": {
                        "_operator": "The address that acts on behalf of the owner",
                        "_owner": "The address that owns the NFTs"
                    },
                    "return": "True if `_operator` is an approved operator for `_owner`, false otherwise"
                },
                "mint(address,uint256)": {
                    "details": "Function to mint a new token      Reverts if the given token ID already exists",
                    "params": {
                        "_to": "Address of the beneficiary that will own the minted token",
                        "_tokenId": "ID of the token to be minted by the msg.sender    "
                    }
                },
                "ownerOf(uint256)": {
                    "details": "NFTs assigned to zero address are considered invalid, and queries      about them do throw.",
                    "params": { "_tokenId": "The identifier for an NFT" },
                    "return": "The address of the owner of the NFT"
                },
                "safeTransferFrom(address,address,uint256)": {
                    "details": "This works identically to the other function with an extra data parameter,      except this function just sets data to \"\".",
                    "params": {
                        "_from": "The current owner of the NFT",
                        "_to": "The new owner",
                        "_tokenId": "The NFT to transfer"
                    }
                },
                "safeTransferFrom(address,address,uint256,bytes)": {
                    "details": "Throws unless `msg.sender` is the current owner, an authorized      operator, or the approved address for this NFT. Throws if `_from` is      not the current owner. Throws if `_to` is the zero address. Throws if      `_tokenId` is not a valid NFT. When transfer is complete, this function      checks if `_to` is a smart contract (code size > 0). If so, it calls      `onERC721Received` on `_to` and throws if the return value is not      `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`.",
                    "params": {
                        "_data": "Additional data with no specified format, sent in call to `_to`",
                        "_from": "The current owner of the NFT",
                        "_to": "The new owner",
                        "_tokenId": "The NFT to transfer"
                    }
                },
                "setApprovalForAll(address,bool)": {
                    "details": "Emits the ApprovalForAll event. The contract MUST allow      multiple operators per owner.",
                    "params": {
                        "_approved": "True if the operator is approved, false to revoke approval",
                        "_operator": "Address to add to the set of authorized operators"
                    }
                },
                "transferFrom(address,address,uint256)": {
                    "details": "Throws unless `msg.sender` is the current owner, an authorized      operator, or the approved address for this NFT. Throws if `_from` is      not the current owner. Throws if `_to` is the zero address. Throws if      `_tokenId` is not a valid NFT.",
                    "params": {
                        "_from": "The current owner of the NFT",
                        "_to": "The new owner",
                        "_tokenId": "The NFT to transfer"
                    }
                },
                "transferOwnership(address)": {
                    "details": "Change the owner of this contract.",
                    "params": { "newOwner": "New owner address." }
                }
            }
        },
        "evm": {
            "bytecode": {
                "object": "[encoded data, 13126 characters]"
            },
            "deployedBytecode": {
                "object": "[encoded data, 11794 characters]"
            }
        }
    },
    "compiler": {
        "name": "solc",
        "version": "0.5.17+commit.d19bba13",
        "settings": {
            "optimizer": {
                "enabled": true,
                "runs": 1000000,
                "details": { "yul": true, "deduplicate": true, "cse": true, "constantOptimizer": true }
            },
            "outputSelection": {
                "*": {
                    "*": [
                        "abi",
                        "devdoc",
                        "evm.bytecode.object",
                        "evm.bytecode.sourceMap",
                        "evm.deployedBytecode.object",
                        "evm.deployedBytecode.sourceMap"
                    ]
                }
            },
            "evmVersion": "istanbul"
        }
    },
    "chains": {}
}
