{
    "contractName": "VersionRegistry",
    "abi": [
        {
            "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": "bytes32",
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "version",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "value",
                    "type": "string"
                },
                {
                    "indexed": false,
                    "internalType": "uint256",
                    "name": "time",
                    "type": "uint256"
                }
            ],
            "name": "VersionAdded",
            "type": "event"
        },
        {
            "anonymous": false,
            "inputs": [
                {
                    "indexed": true,
                    "internalType": "bytes32",
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "bytes32",
                    "name": "version",
                    "type": "bytes32"
                },
                {
                    "indexed": false,
                    "internalType": "string",
                    "name": "reason",
                    "type": "string"
                }
            ],
            "name": "VersionCanceled",
            "type": "event"
        },
        {
            "inputs": [],
            "name": "owner",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [],
            "name": "renounceOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "newOwner",
                    "type": "address"
                }
            ],
            "name": "transferOwnership",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "version",
                    "type": "bytes32"
                },
                {
                    "internalType": "string",
                    "name": "value",
                    "type": "string"
                }
            ],
            "name": "addVersion",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes32",
                    "name": "version",
                    "type": "bytes32"
                },
                {
                    "internalType": "string",
                    "name": "reason",
                    "type": "string"
                }
            ],
            "name": "cancelVersion",
            "outputs": [],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"time\",\"type\":\"uint256\"}],\"name\":\"VersionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"VersionCanceled\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"}],\"name\":\"addVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"version\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"cancelVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/dror/IdeaProjects/gsn/contracts/utils/VersionRegistry.sol\":\"VersionRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/dror/IdeaProjects/gsn/contracts/interfaces/IVersionRegistry.sol\":{\"keccak256\":\"0x85ee75ee22892b9f2962afa7803d6015ea63ba546eac0910a856cd522d94b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe843539e683aa992010a5a55987592f22d9a5cb80c4df94042a8d635ca15a85\",\"dweb:/ipfs/QmcgYceqQvwj2FJ1XNHRYHCG7kc1RJLLyyjzoYv5Pvr7SD\"]},\"/Users/dror/IdeaProjects/gsn/contracts/utils/VersionRegistry.sol\":{\"keccak256\":\"0x752bc6c65e55292b6f6fe8efc5ab404e362314833a3247452f3773c689327ce4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9b92ae9ef4c42c6f6b6b5b5b725887796d64f20b15b8767a446e459006ec749b\",\"dweb:/ipfs/QmWX4E99k7ui7nzyhRPths1feD5ea6TPtxZwepwrDtFJkv\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0x4bd6402ca6b3419008c2b482aff54e66836e8cb4eba2680e42ac5884ae6424fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8f9f711fb8d0d92aeea1c327e3845d13ca1fa8f142e47f8723cd5b3106fb29a3\",\"dweb:/ipfs/QmVQUReDW9f4zGqhizwHnyU8EntMs95tbASdqkGncnikba\"]}},\"version\":1}",
    "bytecode": "0x608060405234801561001057600080fd5b5060006100246001600160e01b0361007316565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350610077565b3390565b6105ea806100866000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063089eae7e1461005c578063219ae672146100da578063715018a6146101565780638da5cb5b1461015e578063f2fde38b14610182575b600080fd5b6100d86004803603606081101561007257600080fd5b81359160208101359181019060608101604082013564010000000081111561009957600080fd5b8201836020820111156100ab57600080fd5b803590602001918460018302840111640100000000831117156100cd57600080fd5b5090925090506101a8565b005b6100d8600480360360608110156100f057600080fd5b81359160208101359181019060608101604082013564010000000081111561011757600080fd5b82018360208201111561012957600080fd5b8035906020019184600183028401116401000000008311171561014b57600080fd5b5090925090506102fa565b6100d86103c1565b610166610463565b604080516001600160a01b039092168252519081900360200190f35b6100d86004803603602081101561019857600080fd5b50356001600160a01b0316610472565b6101b061056a565b6000546001600160a01b03908116911614610200576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b8361023f576040805162461bcd60e51b815260206004820152600a6024820152691b5a5cdcda5b99c81a5960b21b604482015290519081900360640190fd5b82610283576040805162461bcd60e51b815260206004820152600f60248201526e36b4b9b9b4b733903b32b939b4b7b760891b604482015290519081900360640190fd5b837f56950023a84954108e1797b4f116b9339e395c7dfe94f9dd60b64806de93d3f88484844260405180858152602001806020018381526020018281038252858582818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a250505050565b61030261056a565b6000546001600160a01b03908116911614610352576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b837f488c2df78ad692792ecea5763ee0cb43065ea3110cf94e887b6f870129b70b5084848460405180848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a250505050565b6103c961056a565b6000546001600160a01b03908116911614610419576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b61047a61056a565b6000546001600160a01b039081169116146104ca576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b6001600160a01b03811661050f5760405162461bcd60e51b815260040180806020018281038252602681526020018061056f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212204c2494eb3c95b00b895f5e24131e9f97b4bb9fefb739b2bbc8bdc0c92b1c290364736f6c634300060a0033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063089eae7e1461005c578063219ae672146100da578063715018a6146101565780638da5cb5b1461015e578063f2fde38b14610182575b600080fd5b6100d86004803603606081101561007257600080fd5b81359160208101359181019060608101604082013564010000000081111561009957600080fd5b8201836020820111156100ab57600080fd5b803590602001918460018302840111640100000000831117156100cd57600080fd5b5090925090506101a8565b005b6100d8600480360360608110156100f057600080fd5b81359160208101359181019060608101604082013564010000000081111561011757600080fd5b82018360208201111561012957600080fd5b8035906020019184600183028401116401000000008311171561014b57600080fd5b5090925090506102fa565b6100d86103c1565b610166610463565b604080516001600160a01b039092168252519081900360200190f35b6100d86004803603602081101561019857600080fd5b50356001600160a01b0316610472565b6101b061056a565b6000546001600160a01b03908116911614610200576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b8361023f576040805162461bcd60e51b815260206004820152600a6024820152691b5a5cdcda5b99c81a5960b21b604482015290519081900360640190fd5b82610283576040805162461bcd60e51b815260206004820152600f60248201526e36b4b9b9b4b733903b32b939b4b7b760891b604482015290519081900360640190fd5b837f56950023a84954108e1797b4f116b9339e395c7dfe94f9dd60b64806de93d3f88484844260405180858152602001806020018381526020018281038252858582818152602001925080828437600083820152604051601f909101601f191690920182900397509095505050505050a250505050565b61030261056a565b6000546001600160a01b03908116911614610352576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b837f488c2df78ad692792ecea5763ee0cb43065ea3110cf94e887b6f870129b70b5084848460405180848152602001806020018281038252848482818152602001925080828437600083820152604051601f909101601f1916909201829003965090945050505050a250505050565b6103c961056a565b6000546001600160a01b03908116911614610419576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031690565b61047a61056a565b6000546001600160a01b039081169116146104ca576040805162461bcd60e51b81526020600482018190526024820152600080516020610595833981519152604482015290519081900360640190fd5b6001600160a01b03811661050f5760405162461bcd60e51b815260040180806020018281038252602681526020018061056f6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b339056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572a26469706673582212204c2494eb3c95b00b895f5e24131e9f97b4bb9fefb739b2bbc8bdc0c92b1c290364736f6c634300060a0033",
    "immutableReferences": {},
    "sourceMap": "191:510:33:-:0;;;;;;;;;;;;-1:-1:-1;865:17:35;885:12;-1:-1:-1;;;;;885:10:35;:12;:::i;:::-;907:6;:18;;-1:-1:-1;;;;;;907:18:35;-1:-1:-1;;;;;907:18:35;;;;;;;940:43;;907:18;;-1:-1:-1;907:18:35;940:43;;907:6;;940:43;831:159;191:510:33;;590:104:34;677:10;590:104;:::o;191:510:33:-;;;;;;;",
    "deployedSourceMap": "191:510:33:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;252:279;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;252:279:33;;-1:-1:-1;252:279:33;-1:-1:-1;252:279:33;:::i;:::-;;537:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;537:162:33;;-1:-1:-1;537:162:33;-1:-1:-1;537:162:33;:::i;1689:145:35:-;;;:::i;1066:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1066:77:35;;;;;;;;;;;;;;1983:240;;;;;;;;;;;;;;;;-1:-1:-1;1983:240:35;-1:-1:-1;;;;;1983:240:35;;:::i;252:279:33:-;1280:12:35;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:35;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:67:35;;;;;;;;;;;;;;;370:16:33;362:39:::1;;;::::0;;-1:-1:-1;;;362:39:33;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;362:39:33;;;;;;;;;;;;;::::1;;419:21:::0;411:49:::1;;;::::0;;-1:-1:-1;;;411:49:33;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;411:49:33;;;;;;;;;;;;;::::1;;488:2;475:49;492:7;501:5;;508:15;475:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;-1:-1:-1::0;;475:49:33::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;475:49:33;;-1:-1:-1;;;;;;475:49:33::1;252:279:::0;;;;:::o;537:162::-;1280:12:35;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:35;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:67:35;;;;;;;;;;;;;;;672:2:33::1;656:36;676:7;685:6;;656:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;-1:-1:-1::0;;656:36:33::1;::::0;;::::1;::::0;;::::1;::::0;-1:-1:-1;656:36:33;;-1:-1:-1;;;;;656:36:33::1;537:162:::0;;;;:::o;1689:145:35:-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:35;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:67:35;;;;;;;;;;;;;;;1795:1:::1;1779:6:::0;;1758:40:::1;::::0;-1:-1:-1;;;;;1779:6:35;;::::1;::::0;1758:40:::1;::::0;1795:1;;1758:40:::1;1825:1;1808:19:::0;;-1:-1:-1;;;;;;1808:19:35::1;::::0;;1689:145::o;1066:77::-;1104:7;1130:6;-1:-1:-1;;;;;1130:6:35;1066:77;:::o;1983:240::-;1280:12;:10;:12::i;:::-;1270:6;;-1:-1:-1;;;;;1270:6:35;;;:22;;;1262:67;;;;;-1:-1:-1;;;1262:67:35;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1262:67:35;;;;;;;;;;;;;;;-1:-1:-1;;;;;2071:22:35;::::1;2063:73;;;;-1:-1:-1::0;;;2063:73:35::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2172:6;::::0;;2151:38:::1;::::0;-1:-1:-1;;;;;2151:38:35;;::::1;::::0;2172:6;::::1;::::0;2151:38:::1;::::0;::::1;2199:6;:17:::0;;-1:-1:-1;;;;;;2199:17:35::1;-1:-1:-1::0;;;;;2199:17:35;;;::::1;::::0;;;::::1;::::0;;1983:240::o;590:104:34:-;677:10;590:104;:::o",
    "source": "// SPDX-License-Identifier:MIT\npragma solidity ^0.6.2;\n// solhint-disable not-rely-on-time\n\nimport \"../interfaces/IVersionRegistry.sol\";\nimport \"@openzeppelin/contracts/access/Ownable.sol\";\n\ncontract VersionRegistry is IVersionRegistry, Ownable {\n\n    function addVersion(bytes32 id, bytes32 version, string calldata value) external override onlyOwner {\n        require(id != bytes32(0), \"missing id\");\n        require(version != bytes32(0), \"missing version\");\n        emit VersionAdded(id, version, value, block.timestamp);\n    }\n\n    function cancelVersion(bytes32 id, bytes32 version, string calldata reason) external override onlyOwner {\n        emit VersionCanceled(id, version, reason);\n    }\n}\n",
    "sourcePath": "/Users/dror/IdeaProjects/gsn/contracts/utils/VersionRegistry.sol",
    "ast": {
        "absolutePath": "/Users/dror/IdeaProjects/gsn/contracts/utils/VersionRegistry.sol",
        "exportedSymbols": {
            "VersionRegistry": [
                6335
            ]
        },
        "id": 6336,
        "license": "MIT",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 6268,
                "literals": [
                    "solidity",
                    "^",
                    "0.6",
                    ".2"
                ],
                "nodeType": "PragmaDirective",
                "src": "31:23:33"
            },
            {
                "absolutePath": "/Users/dror/IdeaProjects/gsn/contracts/interfaces/IVersionRegistry.sol",
                "file": "../interfaces/IVersionRegistry.sol",
                "id": 6269,
                "nodeType": "ImportDirective",
                "scope": 6336,
                "sourceUnit": 3809,
                "src": "92:44:33",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
                "file": "@openzeppelin/contracts/access/Ownable.sol",
                "id": 6270,
                "nodeType": "ImportDirective",
                "scope": 6336,
                "sourceUnit": 6468,
                "src": "137:52:33",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6271,
                            "name": "IVersionRegistry",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 3808,
                            "src": "219:16:33",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IVersionRegistry_$3808",
                                "typeString": "contract IVersionRegistry"
                            }
                        },
                        "id": 6272,
                        "nodeType": "InheritanceSpecifier",
                        "src": "219:16:33"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6273,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 6467,
                            "src": "237:7:33",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$6467",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 6274,
                        "nodeType": "InheritanceSpecifier",
                        "src": "237:7:33"
                    }
                ],
                "contractDependencies": [
                    3808,
                    6358,
                    6467
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 6335,
                "linearizedBaseContracts": [
                    6335,
                    6467,
                    6358,
                    3808
                ],
                "name": "VersionRegistry",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "baseFunctions": [
                            3797
                        ],
                        "body": {
                            "id": 6314,
                            "nodeType": "Block",
                            "src": "352:179:33",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 6292,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6287,
                                                    "name": "id",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6276,
                                                    "src": "370:2:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 6290,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "384:1:33",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 6289,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "376:7:33",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                                            "typeString": "type(bytes32)"
                                                        },
                                                        "typeName": {
                                                            "id": 6288,
                                                            "name": "bytes32",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "376:7:33",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 6291,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "376:10:33",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "src": "370:16:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "6d697373696e67206964",
                                                "id": 6293,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "388:12:33",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_ea94a22617e0d6c7bb4ed408d1fb246e035ab5c38ff2e4b532077c91db8d0916",
                                                    "typeString": "literal_string \"missing id\""
                                                },
                                                "value": "missing id"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_ea94a22617e0d6c7bb4ed408d1fb246e035ab5c38ff2e4b532077c91db8d0916",
                                                    "typeString": "literal_string \"missing id\""
                                                }
                                            ],
                                            "id": 6286,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "362:7:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6294,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "362:39:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6295,
                                    "nodeType": "ExpressionStatement",
                                    "src": "362:39:33"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 6302,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6297,
                                                    "name": "version",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6278,
                                                    "src": "419:7:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 6300,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "438:1:33",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 6299,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "430:7:33",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                                            "typeString": "type(bytes32)"
                                                        },
                                                        "typeName": {
                                                            "id": 6298,
                                                            "name": "bytes32",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "430:7:33",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 6301,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "430:10:33",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "src": "419:21:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "6d697373696e672076657273696f6e",
                                                "id": 6303,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "442:17:33",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_6cd92da6d04ebed2aafae6315889dd89b65a142d32d7ebafe0565c02bdc4bba2",
                                                    "typeString": "literal_string \"missing version\""
                                                },
                                                "value": "missing version"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_6cd92da6d04ebed2aafae6315889dd89b65a142d32d7ebafe0565c02bdc4bba2",
                                                    "typeString": "literal_string \"missing version\""
                                                }
                                            ],
                                            "id": 6296,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "411:7:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6304,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "411:49:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6305,
                                    "nodeType": "ExpressionStatement",
                                    "src": "411:49:33"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6307,
                                                "name": "id",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6276,
                                                "src": "488:2:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6308,
                                                "name": "version",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6278,
                                                "src": "492:7:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6309,
                                                "name": "value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6280,
                                                "src": "501:5:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 6310,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "508:5:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 6311,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "508:15:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 6306,
                                            "name": "VersionAdded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3779,
                                            "src": "475:12:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,bytes32,string memory,uint256)"
                                            }
                                        },
                                        "id": 6312,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "475:49:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6313,
                                    "nodeType": "EmitStatement",
                                    "src": "470:54:33"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "089eae7e",
                        "id": 6315,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6284,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6283,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6416,
                                    "src": "342:9:33",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "342:9:33"
                            }
                        ],
                        "name": "addVersion",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6282,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "333:8:33"
                        },
                        "parameters": {
                            "id": 6281,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6276,
                                    "mutability": "mutable",
                                    "name": "id",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "272:10:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6275,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "272:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6278,
                                    "mutability": "mutable",
                                    "name": "version",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "284:15:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6277,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "284:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6280,
                                    "mutability": "mutable",
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "301:21:33",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6279,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "301:6:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "271:52:33"
                        },
                        "returnParameters": {
                            "id": 6285,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "352:0:33"
                        },
                        "scope": 6335,
                        "src": "252:279:33",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            3807
                        ],
                        "body": {
                            "id": 6333,
                            "nodeType": "Block",
                            "src": "641:58:33",
                            "statements": [
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6328,
                                                "name": "id",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6317,
                                                "src": "672:2:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6329,
                                                "name": "version",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6319,
                                                "src": "676:7:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6330,
                                                "name": "reason",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6321,
                                                "src": "685:6:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            ],
                                            "id": 6327,
                                            "name": "VersionCanceled",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3787,
                                            "src": "656:15:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes32,bytes32,string memory)"
                                            }
                                        },
                                        "id": 6331,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "656:36:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6332,
                                    "nodeType": "EmitStatement",
                                    "src": "651:41:33"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "219ae672",
                        "id": 6334,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6325,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6324,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6416,
                                    "src": "631:9:33",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "631:9:33"
                            }
                        ],
                        "name": "cancelVersion",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6323,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "622:8:33"
                        },
                        "parameters": {
                            "id": 6322,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6317,
                                    "mutability": "mutable",
                                    "name": "id",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "560:10:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6316,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "560:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6319,
                                    "mutability": "mutable",
                                    "name": "version",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "572:15:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6318,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "572:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6321,
                                    "mutability": "mutable",
                                    "name": "reason",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "589:22:33",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6320,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "589:6:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "559:53:33"
                        },
                        "returnParameters": {
                            "id": 6326,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "641:0:33"
                        },
                        "scope": 6335,
                        "src": "537:162:33",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "scope": 6336,
                "src": "191:510:33"
            }
        ],
        "src": "31:671:33"
    },
    "legacyAST": {
        "absolutePath": "/Users/dror/IdeaProjects/gsn/contracts/utils/VersionRegistry.sol",
        "exportedSymbols": {
            "VersionRegistry": [
                6335
            ]
        },
        "id": 6336,
        "license": "MIT",
        "nodeType": "SourceUnit",
        "nodes": [
            {
                "id": 6268,
                "literals": [
                    "solidity",
                    "^",
                    "0.6",
                    ".2"
                ],
                "nodeType": "PragmaDirective",
                "src": "31:23:33"
            },
            {
                "absolutePath": "/Users/dror/IdeaProjects/gsn/contracts/interfaces/IVersionRegistry.sol",
                "file": "../interfaces/IVersionRegistry.sol",
                "id": 6269,
                "nodeType": "ImportDirective",
                "scope": 6336,
                "sourceUnit": 3809,
                "src": "92:44:33",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
                "file": "@openzeppelin/contracts/access/Ownable.sol",
                "id": 6270,
                "nodeType": "ImportDirective",
                "scope": 6336,
                "sourceUnit": 6468,
                "src": "137:52:33",
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "abstract": false,
                "baseContracts": [
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6271,
                            "name": "IVersionRegistry",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 3808,
                            "src": "219:16:33",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IVersionRegistry_$3808",
                                "typeString": "contract IVersionRegistry"
                            }
                        },
                        "id": 6272,
                        "nodeType": "InheritanceSpecifier",
                        "src": "219:16:33"
                    },
                    {
                        "arguments": null,
                        "baseName": {
                            "contractScope": null,
                            "id": 6273,
                            "name": "Ownable",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 6467,
                            "src": "237:7:33",
                            "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Ownable_$6467",
                                "typeString": "contract Ownable"
                            }
                        },
                        "id": 6274,
                        "nodeType": "InheritanceSpecifier",
                        "src": "237:7:33"
                    }
                ],
                "contractDependencies": [
                    3808,
                    6358,
                    6467
                ],
                "contractKind": "contract",
                "documentation": null,
                "fullyImplemented": true,
                "id": 6335,
                "linearizedBaseContracts": [
                    6335,
                    6467,
                    6358,
                    3808
                ],
                "name": "VersionRegistry",
                "nodeType": "ContractDefinition",
                "nodes": [
                    {
                        "baseFunctions": [
                            3797
                        ],
                        "body": {
                            "id": 6314,
                            "nodeType": "Block",
                            "src": "352:179:33",
                            "statements": [
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 6292,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6287,
                                                    "name": "id",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6276,
                                                    "src": "370:2:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 6290,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "384:1:33",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 6289,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "376:7:33",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                                            "typeString": "type(bytes32)"
                                                        },
                                                        "typeName": {
                                                            "id": 6288,
                                                            "name": "bytes32",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "376:7:33",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 6291,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "376:10:33",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "src": "370:16:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "6d697373696e67206964",
                                                "id": 6293,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "388:12:33",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_ea94a22617e0d6c7bb4ed408d1fb246e035ab5c38ff2e4b532077c91db8d0916",
                                                    "typeString": "literal_string \"missing id\""
                                                },
                                                "value": "missing id"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_ea94a22617e0d6c7bb4ed408d1fb246e035ab5c38ff2e4b532077c91db8d0916",
                                                    "typeString": "literal_string \"missing id\""
                                                }
                                            ],
                                            "id": 6286,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "362:7:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6294,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "362:39:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6295,
                                    "nodeType": "ExpressionStatement",
                                    "src": "362:39:33"
                                },
                                {
                                    "expression": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "commonType": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                "id": 6302,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "leftExpression": {
                                                    "argumentTypes": null,
                                                    "id": 6297,
                                                    "name": "version",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": 6278,
                                                    "src": "419:7:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "nodeType": "BinaryOperation",
                                                "operator": "!=",
                                                "rightExpression": {
                                                    "argumentTypes": null,
                                                    "arguments": [
                                                        {
                                                            "argumentTypes": null,
                                                            "hexValue": "30",
                                                            "id": 6300,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": true,
                                                            "kind": "number",
                                                            "lValueRequested": false,
                                                            "nodeType": "Literal",
                                                            "src": "438:1:33",
                                                            "subdenomination": null,
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            },
                                                            "value": "0"
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_rational_0_by_1",
                                                                "typeString": "int_const 0"
                                                            }
                                                        ],
                                                        "id": 6299,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "430:7:33",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_bytes32_$",
                                                            "typeString": "type(bytes32)"
                                                        },
                                                        "typeName": {
                                                            "id": 6298,
                                                            "name": "bytes32",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "430:7:33",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": null,
                                                                "typeString": null
                                                            }
                                                        }
                                                    },
                                                    "id": 6301,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "430:10:33",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_bytes32",
                                                        "typeString": "bytes32"
                                                    }
                                                },
                                                "src": "419:21:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "hexValue": "6d697373696e672076657273696f6e",
                                                "id": 6303,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "string",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "442:17:33",
                                                "subdenomination": null,
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_stringliteral_6cd92da6d04ebed2aafae6315889dd89b65a142d32d7ebafe0565c02bdc4bba2",
                                                    "typeString": "literal_string \"missing version\""
                                                },
                                                "value": "missing version"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bool",
                                                    "typeString": "bool"
                                                },
                                                {
                                                    "typeIdentifier": "t_stringliteral_6cd92da6d04ebed2aafae6315889dd89b65a142d32d7ebafe0565c02bdc4bba2",
                                                    "typeString": "literal_string \"missing version\""
                                                }
                                            ],
                                            "id": 6296,
                                            "name": "require",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [
                                                -18,
                                                -18
                                            ],
                                            "referencedDeclaration": -18,
                                            "src": "411:7:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bool,string memory) pure"
                                            }
                                        },
                                        "id": 6304,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "411:49:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6305,
                                    "nodeType": "ExpressionStatement",
                                    "src": "411:49:33"
                                },
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6307,
                                                "name": "id",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6276,
                                                "src": "488:2:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6308,
                                                "name": "version",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6278,
                                                "src": "492:7:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6309,
                                                "name": "value",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6280,
                                                "src": "501:5:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "expression": {
                                                    "argumentTypes": null,
                                                    "id": 6310,
                                                    "name": "block",
                                                    "nodeType": "Identifier",
                                                    "overloadedDeclarations": [],
                                                    "referencedDeclaration": -4,
                                                    "src": "508:5:33",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_magic_block",
                                                        "typeString": "block"
                                                    }
                                                },
                                                "id": 6311,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberName": "timestamp",
                                                "nodeType": "MemberAccess",
                                                "referencedDeclaration": null,
                                                "src": "508:15:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                },
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 6306,
                                            "name": "VersionAdded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3779,
                                            "src": "475:12:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$_t_uint256_$returns$__$",
                                                "typeString": "function (bytes32,bytes32,string memory,uint256)"
                                            }
                                        },
                                        "id": 6312,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "475:49:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6313,
                                    "nodeType": "EmitStatement",
                                    "src": "470:54:33"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "089eae7e",
                        "id": 6315,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6284,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6283,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6416,
                                    "src": "342:9:33",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "342:9:33"
                            }
                        ],
                        "name": "addVersion",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6282,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "333:8:33"
                        },
                        "parameters": {
                            "id": 6281,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6276,
                                    "mutability": "mutable",
                                    "name": "id",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "272:10:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6275,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "272:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6278,
                                    "mutability": "mutable",
                                    "name": "version",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "284:15:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6277,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "284:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6280,
                                    "mutability": "mutable",
                                    "name": "value",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6315,
                                    "src": "301:21:33",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6279,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "301:6:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "271:52:33"
                        },
                        "returnParameters": {
                            "id": 6285,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "352:0:33"
                        },
                        "scope": 6335,
                        "src": "252:279:33",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    },
                    {
                        "baseFunctions": [
                            3807
                        ],
                        "body": {
                            "id": 6333,
                            "nodeType": "Block",
                            "src": "641:58:33",
                            "statements": [
                                {
                                    "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                            {
                                                "argumentTypes": null,
                                                "id": 6328,
                                                "name": "id",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6317,
                                                "src": "672:2:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6329,
                                                "name": "version",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6319,
                                                "src": "676:7:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                }
                                            },
                                            {
                                                "argumentTypes": null,
                                                "id": 6330,
                                                "name": "reason",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 6321,
                                                "src": "685:6:33",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_bytes32",
                                                    "typeString": "bytes32"
                                                },
                                                {
                                                    "typeIdentifier": "t_string_calldata_ptr",
                                                    "typeString": "string calldata"
                                                }
                                            ],
                                            "id": 6327,
                                            "name": "VersionCanceled",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 3787,
                                            "src": "656:15:33",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes32,bytes32,string memory)"
                                            }
                                        },
                                        "id": 6331,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "656:36:33",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 6332,
                                    "nodeType": "EmitStatement",
                                    "src": "651:41:33"
                                }
                            ]
                        },
                        "documentation": null,
                        "functionSelector": "219ae672",
                        "id": 6334,
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [
                            {
                                "arguments": null,
                                "id": 6325,
                                "modifierName": {
                                    "argumentTypes": null,
                                    "id": 6324,
                                    "name": "onlyOwner",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6416,
                                    "src": "631:9:33",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_modifier$__$",
                                        "typeString": "modifier ()"
                                    }
                                },
                                "nodeType": "ModifierInvocation",
                                "src": "631:9:33"
                            }
                        ],
                        "name": "cancelVersion",
                        "nodeType": "FunctionDefinition",
                        "overrides": {
                            "id": 6323,
                            "nodeType": "OverrideSpecifier",
                            "overrides": [],
                            "src": "622:8:33"
                        },
                        "parameters": {
                            "id": 6322,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 6317,
                                    "mutability": "mutable",
                                    "name": "id",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "560:10:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6316,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "560:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6319,
                                    "mutability": "mutable",
                                    "name": "version",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "572:15:33",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                    },
                                    "typeName": {
                                        "id": 6318,
                                        "name": "bytes32",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "572:7:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes32",
                                            "typeString": "bytes32"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 6321,
                                    "mutability": "mutable",
                                    "name": "reason",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 6334,
                                    "src": "589:22:33",
                                    "stateVariable": false,
                                    "storageLocation": "calldata",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_string_calldata_ptr",
                                        "typeString": "string"
                                    },
                                    "typeName": {
                                        "id": 6320,
                                        "name": "string",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "589:6:33",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_string_storage_ptr",
                                            "typeString": "string"
                                        }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                }
                            ],
                            "src": "559:53:33"
                        },
                        "returnParameters": {
                            "id": 6326,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "641:0:33"
                        },
                        "scope": 6335,
                        "src": "537:162:33",
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "scope": 6336,
                "src": "191:510:33"
            }
        ],
        "src": "31:671:33"
    },
    "compiler": {
        "name": "solc",
        "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
    },
    "networks": {},
    "schemaVersion": "3.1.0",
    "updatedAt": "2020-12-21T17:30:10.528Z",
    "devdoc": {
        "methods": {
            "owner()": {
                "details": "Returns the address of the current owner."
            },
            "renounceOwnership()": {
                "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
            },
            "transferOwnership(address)": {
                "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
            }
        }
    },
    "userdoc": {
        "methods": {}
    }
}
