{
  "contractName": "EventEmitter",
  "abi": [
    {
      "inputs": [
        {
          "name": "auth",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor",
      "signature": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "eventType",
          "type": "string"
        },
        {
          "indexed": false,
          "name": "data",
          "type": "bytes32[]"
        }
      ],
      "name": "ParadigmEvent",
      "type": "event",
      "signature": "0xb68836208a735161f1390dda0ff45fa887902bfcc41993796211c40b417ad48c"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "eventType",
          "type": "string"
        },
        {
          "name": "data",
          "type": "bytes32[]"
        }
      ],
      "name": "emitEvent",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function",
      "signature": "0x27902401"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516020806102e28339810180604052602081101561003057600080fd5b505160008054600160a060020a03909216600160a060020a0319909216919091179055610280806100626000396000f3fe6080604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279024018114610045575b600080fd5b34801561005157600080fd5b506101146004803603604081101561006857600080fd5b81019060208101813564010000000081111561008357600080fd5b82018360208201111561009557600080fd5b803590602001918460018302840111640100000000831117156100b757600080fd5b9193909290916020810190356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184602083028401116401000000008311171561010957600080fd5b509092509050610116565b005b600054604080517fced3fb9c000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163ced3fb9c91602480820192602092909190829003018186803b15801561018757600080fd5b505afa15801561019b573d6000803e3d6000fd5b505050506040513d60208110156101b157600080fd5b505115156101be57600080fd5b7fb68836208a735161f1390dda0ff45fa887902bfcc41993796211c40b417ad48c848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050505056fea165627a7a723058209c39c65b503212781d48adbab6c9a46e6dc958984271a689ef02181202362ce50029",
  "deployedBytecode": "0x6080604052600436106100405763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663279024018114610045575b600080fd5b34801561005157600080fd5b506101146004803603604081101561006857600080fd5b81019060208101813564010000000081111561008357600080fd5b82018360208201111561009557600080fd5b803590602001918460018302840111640100000000831117156100b757600080fd5b9193909290916020810190356401000000008111156100d557600080fd5b8201836020820111156100e757600080fd5b8035906020019184602083028401116401000000008311171561010957600080fd5b509092509050610116565b005b600054604080517fced3fb9c000000000000000000000000000000000000000000000000000000008152336004820152905173ffffffffffffffffffffffffffffffffffffffff9092169163ced3fb9c91602480820192602092909190829003018186803b15801561018757600080fd5b505afa15801561019b573d6000803e3d6000fd5b505050506040513d60208110156101b157600080fd5b505115156101be57600080fd5b7fb68836208a735161f1390dda0ff45fa887902bfcc41993796211c40b417ad48c848484846040518080602001806020018381038352878782818152602001925080828437600083820152601f01601f19169091018481038352858152602090810191508690860280828437600083820152604051601f909101601f19169092018290039850909650505050505050a15050505056fea165627a7a723058209c39c65b503212781d48adbab6c9a46e6dc958984271a689ef02181202362ce50029",
  "sourceMap": "108:909:2:-;;;476:59;8:9:-1;5:2;;;30:1;27;20:12;5:2;476:59:2;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;476:59:2;557:17:1;:67;;-1:-1:-1;;;;;557:67:1;;;-1:-1:-1;;;;;;557:67:1;;;;;;;;;108:909:2;;;;;;",
  "deployedSourceMap": "108:909:2:-;;;;;;;;;;;;;;;;;;;;;;;870:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;870:145:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;870:145:2;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;870:145:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;870:145:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;870:145:2;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;870:145:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;870:145:2;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;870:145:2;;-1:-1:-1;870:145:2;-1:-1:-1;870:145:2;;;;;770:17:1;;:49;;;;;;808:10;770:49;;;;;;:17;;;;;:37;;:49;;;;;;;;;;;;;;;:17;:49;;;5:2:-1;;;;30:1;27;20:12;5:2;770:49:1;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;770:49:1;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;770:49:1;762:58;;;;;;;;978:30:2;992:9;;1003:4;;978:30;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;;74:27;137:4;117:14;-1:-1;;113:30;157:16;;;978:30:2;;;;;;;;;;;;;-1:-1:-1;978:30:2;;;;;;;1:33:-1;99:1;81:16;;;74:27;978:30:2;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;978:30:2;;;;-1:-1:-1;978:30:2;;-1:-1:-1;;;;;;;978:30:2;870:145;;;;:::o",
  "source": "pragma solidity ^0.5.0;\n\nimport \"../base/Authorizable.sol\";\n\n/** @title EventEmitter\n    @author Freydal\n*/\ncontract EventEmitter is Authorizable {\n\n    //Generic event which can be decoded in Javascript via internal library.\n    event ParadigmEvent(string eventType, bytes32[] data);\n\n    /** @dev Event emitter instantiated with Authorizable.\n        @notice Event emitter instantiated with Authorizable.\n        @param auth AuthorizedAddresses deployed address.\n    */\n    constructor(address auth) Authorizable(auth) public {\n    }\n\n    /** @dev Emit generic events which can have decoding exposed though javascript library.\n        @notice Emit generic events which can have decoding exposed though javascript library.\n        @param eventType String name/type of event\n        @param data Bytes32 encoded data to be emitted from a centralized location.\n    */\n    function emitEvent(string calldata eventType, bytes32[] calldata data) external isAuthorized {\n        emit ParadigmEvent(eventType, data);\n    }\n}\n\n\n\n",
  "sourcePath": "/Users/freydal/IdeaProjects/ParadigmContracts/internal/contracts/event/EventEmitter.sol",
  "ast": {
    "absolutePath": "/Users/freydal/IdeaProjects/ParadigmContracts/internal/contracts/event/EventEmitter.sol",
    "exportedSymbols": {
      "EventEmitter": [
        140
      ]
    },
    "id": 141,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 104,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:2"
      },
      {
        "absolutePath": "/Users/freydal/IdeaProjects/ParadigmContracts/internal/contracts/base/Authorizable.sol",
        "file": "../base/Authorizable.sol",
        "id": 105,
        "nodeType": "ImportDirective",
        "scope": 141,
        "sourceUnit": 103,
        "src": "25:34:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 106,
              "name": "Authorizable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 102,
              "src": "133:12:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Authorizable_$102",
                "typeString": "contract Authorizable"
              }
            },
            "id": 107,
            "nodeType": "InheritanceSpecifier",
            "src": "133:12:2"
          }
        ],
        "contractDependencies": [
          102
        ],
        "contractKind": "contract",
        "documentation": "@title EventEmitter\n@author Freydal",
        "fullyImplemented": true,
        "id": 140,
        "linearizedBaseContracts": [
          140,
          102
        ],
        "name": "EventEmitter",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 114,
            "name": "ParadigmEvent",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 109,
                  "indexed": false,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 114,
                  "src": "250:16:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 112,
                  "indexed": false,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 114,
                  "src": "268:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 110,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "268:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 111,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "268:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "249:34:2"
            },
            "src": "230:54:2"
          },
          {
            "body": {
              "id": 122,
              "nodeType": "Block",
              "src": "528:7:2",
              "statements": []
            },
            "documentation": "@dev Event emitter instantiated with Authorizable.\n@notice Event emitter instantiated with Authorizable.\n@param auth AuthorizedAddresses deployed address.",
            "id": 123,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 119,
                    "name": "auth",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 116,
                    "src": "515:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 120,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 118,
                  "name": "Authorizable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 102,
                  "src": "502:12:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Authorizable_$102_$",
                    "typeString": "type(contract Authorizable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "502:18:2"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 116,
                  "name": "auth",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "488:12:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 115,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "488:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "487:14:2"
            },
            "returnParameters": {
              "id": 121,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "528:0:2"
            },
            "scope": 140,
            "src": "476:59:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 138,
              "nodeType": "Block",
              "src": "963:52:2",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 134,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 125,
                        "src": "992:9:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 135,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 128,
                        "src": "1003:4:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 133,
                      "name": "ParadigmEvent",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 114,
                      "src": "978:13:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes32[] memory)"
                      }
                    },
                    "id": 136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "978:30:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 137,
                  "nodeType": "EmitStatement",
                  "src": "973:35:2"
                }
              ]
            },
            "documentation": "@dev Emit generic events which can have decoding exposed though javascript library.\n@notice Emit generic events which can have decoding exposed though javascript library.\n@param eventType String name/type of event\n@param data Bytes32 encoded data to be emitted from a centralized location.",
            "id": 139,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 131,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 130,
                  "name": "isAuthorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 101,
                  "src": "950:12:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "950:12:2"
              }
            ],
            "name": "emitEvent",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 125,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 139,
                  "src": "889:25:2",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "889:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 128,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 139,
                  "src": "916:23:2",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 126,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "916:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 127,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "916:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "888:52:2"
            },
            "returnParameters": {
              "id": 132,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "963:0:2"
            },
            "scope": 140,
            "src": "870:145:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 141,
        "src": "108:909:2"
      }
    ],
    "src": "0:1021:2"
  },
  "legacyAST": {
    "absolutePath": "/Users/freydal/IdeaProjects/ParadigmContracts/internal/contracts/event/EventEmitter.sol",
    "exportedSymbols": {
      "EventEmitter": [
        140
      ]
    },
    "id": 141,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 104,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:2"
      },
      {
        "absolutePath": "/Users/freydal/IdeaProjects/ParadigmContracts/internal/contracts/base/Authorizable.sol",
        "file": "../base/Authorizable.sol",
        "id": 105,
        "nodeType": "ImportDirective",
        "scope": 141,
        "sourceUnit": 103,
        "src": "25:34:2",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 106,
              "name": "Authorizable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 102,
              "src": "133:12:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Authorizable_$102",
                "typeString": "contract Authorizable"
              }
            },
            "id": 107,
            "nodeType": "InheritanceSpecifier",
            "src": "133:12:2"
          }
        ],
        "contractDependencies": [
          102
        ],
        "contractKind": "contract",
        "documentation": "@title EventEmitter\n@author Freydal",
        "fullyImplemented": true,
        "id": 140,
        "linearizedBaseContracts": [
          140,
          102
        ],
        "name": "EventEmitter",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 114,
            "name": "ParadigmEvent",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 109,
                  "indexed": false,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 114,
                  "src": "250:16:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 108,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "250:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 112,
                  "indexed": false,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 114,
                  "src": "268:14:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 110,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "268:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 111,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "268:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "249:34:2"
            },
            "src": "230:54:2"
          },
          {
            "body": {
              "id": 122,
              "nodeType": "Block",
              "src": "528:7:2",
              "statements": []
            },
            "documentation": "@dev Event emitter instantiated with Authorizable.\n@notice Event emitter instantiated with Authorizable.\n@param auth AuthorizedAddresses deployed address.",
            "id": 123,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "id": 119,
                    "name": "auth",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 116,
                    "src": "515:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 120,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 118,
                  "name": "Authorizable",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 102,
                  "src": "502:12:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_Authorizable_$102_$",
                    "typeString": "type(contract Authorizable)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "502:18:2"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 116,
                  "name": "auth",
                  "nodeType": "VariableDeclaration",
                  "scope": 123,
                  "src": "488:12:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 115,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "488:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "487:14:2"
            },
            "returnParameters": {
              "id": 121,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "528:0:2"
            },
            "scope": 140,
            "src": "476:59:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 138,
              "nodeType": "Block",
              "src": "963:52:2",
              "statements": [
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 134,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 125,
                        "src": "992:9:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 135,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 128,
                        "src": "1003:4:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                          "typeString": "bytes32[] calldata"
                        }
                      ],
                      "id": 133,
                      "name": "ParadigmEvent",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 114,
                      "src": "978:13:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,bytes32[] memory)"
                      }
                    },
                    "id": 136,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "978:30:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 137,
                  "nodeType": "EmitStatement",
                  "src": "973:35:2"
                }
              ]
            },
            "documentation": "@dev Emit generic events which can have decoding exposed though javascript library.\n@notice Emit generic events which can have decoding exposed though javascript library.\n@param eventType String name/type of event\n@param data Bytes32 encoded data to be emitted from a centralized location.",
            "id": 139,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 131,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 130,
                  "name": "isAuthorized",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 101,
                  "src": "950:12:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "950:12:2"
              }
            ],
            "name": "emitEvent",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 125,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 139,
                  "src": "889:25:2",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 124,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "889:6:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 128,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 139,
                  "src": "916:23:2",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 126,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "916:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 127,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "916:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "888:52:2"
            },
            "returnParameters": {
              "id": 132,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "963:0:2"
            },
            "scope": 140,
            "src": "870:145:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 141,
        "src": "108:909:2"
      }
    ],
    "src": "0:1021:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {
    "3": {
      "events": {},
      "links": {},
      "address": "0xf2098FB608098A562d24CCde594A304d739cc4B7",
      "transactionHash": "0x331a237066360ec416f24239370f6265df829843faec066755adb6164ed755dd"
    },
    "6174": {
      "events": {},
      "links": {},
      "address": "0x7E6534b8205713246e91A14b462D2DBcAC3eDe17",
      "transactionHash": "0x8c8b944cc6aa6733aef422c8bfed163023ea137932efe023c03828cbfe27ad0e"
    }
  },
  "schemaVersion": "3.0.2",
  "updatedAt": "2019-04-04T17:37:24.633Z",
  "devdoc": {
    "author": "Freydal",
    "methods": {
      "constructor": {
        "details": "Event emitter instantiated with Authorizable.",
        "params": {
          "auth": "AuthorizedAddresses deployed address."
        }
      },
      "emitEvent(string,bytes32[])": {
        "details": "Emit generic events which can have decoding exposed though javascript library.",
        "params": {
          "data": "Bytes32 encoded data to be emitted from a centralized location.",
          "eventType": "String name/type of event"
        }
      }
    },
    "title": "EventEmitter"
  },
  "userdoc": {
    "methods": {
      "constructor": "Event emitter instantiated with Authorizable.",
      "emitEvent(string,bytes32[])": {
        "notice": "Emit generic events which can have decoding exposed though javascript library."
      }
    }
  }
}