{
    "schemaVersion": "2.0.0",
    "contractName": "ERC721Proxy",
    "compilerOutput": {
        "abi": [
            {
                "anonymous": false,
                "inputs": [
                    { "indexed": true, "internalType": "address", "name": "target", "type": "address" },
                    { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }
                ],
                "name": "AuthorizedAddressAdded",
                "type": "event"
            },
            {
                "anonymous": false,
                "inputs": [
                    { "indexed": true, "internalType": "address", "name": "target", "type": "address" },
                    { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }
                ],
                "name": "AuthorizedAddressRemoved",
                "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"
            },
            { "payable": false, "stateMutability": "nonpayable", "type": "fallback" },
            {
                "constant": false,
                "inputs": [{ "internalType": "address", "name": "target", "type": "address" }],
                "name": "addAuthorizedAddress",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
                "name": "authorities",
                "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "name": "authorized",
                "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "getAuthorizedAddresses",
                "outputs": [{ "internalType": "address[]", "name": "", "type": "address[]" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "getProxyId",
                "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }],
                "payable": false,
                "stateMutability": "pure",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [],
                "name": "owner",
                "outputs": [{ "internalType": "address", "name": "", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [{ "internalType": "address", "name": "target", "type": "address" }],
                "name": "removeAuthorizedAddress",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "target", "type": "address" },
                    { "internalType": "uint256", "name": "index", "type": "uint256" }
                ],
                "name": "removeAuthorizedAddressAtIndex",
                "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": {
                "addAuthorizedAddress(address)": {
                    "details": "Authorizes an address.",
                    "params": { "target": "Address to authorize." }
                },
                "getAuthorizedAddresses()": {
                    "details": "Gets all authorized addresses.",
                    "return": "Array of authorized addresses."
                },
                "getProxyId()": {
                    "details": "Gets the proxy id associated with the proxy address.",
                    "return": "Proxy id."
                },
                "removeAuthorizedAddress(address)": {
                    "details": "Removes authorizion of an address.",
                    "params": { "target": "Address to remove authorization from." }
                },
                "removeAuthorizedAddressAtIndex(address,uint256)": {
                    "details": "Removes authorizion of an address.",
                    "params": {
                        "index": "Index of target in authorities array.",
                        "target": "Address to remove authorization from."
                    }
                }
            }
        },
        "evm": {
            "bytecode": {
                "object": "[encoded data, 8124 characters]"
            },
            "deployedBytecode": {
                "object": "[encoded data, 8050 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": {}
}
