{
  "contractName": "IClaimTopicsRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        }
      ],
      "name": "ClaimTopicAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        }
      ],
      "name": "ClaimTopicRemoved",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_claimTopic",
          "type": "uint256"
        }
      ],
      "name": "addClaimTopic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_claimTopic",
          "type": "uint256"
        }
      ],
      "name": "removeClaimTopic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getClaimTopics",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnershipOnClaimTopicsRegistryContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnClaimTopicsRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event\",\"params\":{\"_claimTopic\":\"The claim topic index\"}},\"getClaimTopics()\":{\"details\":\"Get the trusted claim topics for the security token\",\"returns\":{\"_0\":\"Array of trusted claim topics\"}},\"removeClaimTopic(uint256)\":{\"details\":\"Remove a trusted claim topic (For example: KYC=1, AML=2).  Only owner can call.  emits `ClaimTopicRemoved` event\",\"params\":{\"_claimTopic\":\"The claim topic index\"}},\"transferOwnershipOnClaimTopicsRegistryContract(address)\":{\"details\":\"Transfers the Ownership of ClaimTopics to a new Owner.  Only owner can call.\",\"params\":{\"_newOwner\":\"The new owner of this contract.\"}}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the ClaimTopicsRegistry  the event is emitted by the 'addClaimTopic' function  `claimTopic` is the required claim added to the Claim Topics Registry\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry  the event is emitted by the 'removeClaimTopic' function  `claimTopic` is the required claim removed from the Claim Topics Registry\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/registry/IClaimTopicsRegistry.sol\":\"IClaimTopicsRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"project:/contracts/registry/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0x95f8fa17a716771125b203f00890eceb20ac3807f7a39a25b644427b1ff81d61\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://460dceb9e88957d5ce002b80748767c80a7e146c9b38b055a3c1ca04586b2009\",\"dweb:/ipfs/QmVdqEpGMRzSpLKBCtPzaPGatBgUyNm3NS5rQnkkYMnc1C\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: GPL-3.0\n/**\n *     NOTICE\n *\n *     The T-REX software is licensed under a proprietary license or the GPL v.3.\n *     If you choose to receive it under the GPL v.3 license, the following applies:\n *     T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain\n *\n *     Copyright (C) 2021, Tokeny sàrl.\n *\n *     This program is free software: you can redistribute it and/or modify\n *     it under the terms of the GNU General Public License as published by\n *     the Free Software Foundation, either version 3 of the License, or\n *     (at your option) any later version.\n *\n *     This program is distributed in the hope that it will be useful,\n *     but WITHOUT ANY WARRANTY; without even the implied warranty of\n *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *     GNU General Public License for more details.\n *\n *     You should have received a copy of the GNU General Public License\n *     along with this program.  If not, see <https://www.gnu.org/licenses/>.\n */\n\npragma solidity ^0.8.0;\n\ninterface IClaimTopicsRegistry {\n    /**\n     *  this event is emitted when a claim topic has been added to the ClaimTopicsRegistry\n     *  the event is emitted by the 'addClaimTopic' function\n     *  `claimTopic` is the required claim added to the Claim Topics Registry\n     */\n    event ClaimTopicAdded(uint256 indexed claimTopic);\n\n    /**\n     *  this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry\n     *  the event is emitted by the 'removeClaimTopic' function\n     *  `claimTopic` is the required claim removed from the Claim Topics Registry\n     */\n    event ClaimTopicRemoved(uint256 indexed claimTopic);\n\n    /**\n     * @dev Add a trusted claim topic (For example: KYC=1, AML=2).\n     * Only owner can call.\n     * emits `ClaimTopicAdded` event\n     * @param _claimTopic The claim topic index\n     */\n    function addClaimTopic(uint256 _claimTopic) external;\n\n    /**\n     *  @dev Remove a trusted claim topic (For example: KYC=1, AML=2).\n     *  Only owner can call.\n     *  emits `ClaimTopicRemoved` event\n     *  @param _claimTopic The claim topic index\n     */\n    function removeClaimTopic(uint256 _claimTopic) external;\n\n    /**\n     *  @dev Get the trusted claim topics for the security token\n     *  @return Array of trusted claim topics\n     */\n    function getClaimTopics() external view returns (uint256[] memory);\n\n    /**\n     *  @dev Transfers the Ownership of ClaimTopics to a new Owner.\n     *  Only owner can call.\n     *  @param _newOwner The new owner of this contract.\n     */\n    function transferOwnershipOnClaimTopicsRegistryContract(address _newOwner) external;\n}\n",
  "sourcePath": "/home/webxpert/workspace/shipfinex/latest-repos/tokenx_smartcontract/contracts/registry/IClaimTopicsRegistry.sol",
  "ast": {
    "absolutePath": "project:/contracts/registry/IClaimTopicsRegistry.sol",
    "exportedSymbols": {
      "IClaimTopicsRegistry": [
        6444
      ]
    },
    "id": 6445,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6408,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1093:23:35"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "IClaimTopicsRegistry",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 6444,
        "linearizedBaseContracts": [
          6444
        ],
        "name": "IClaimTopicsRegistry",
        "nameLocation": "1128:20:35",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": {
              "id": 6409,
              "nodeType": "StructuredDocumentation",
              "src": "1155:241:35",
              "text": "  this event is emitted when a claim topic has been added to the ClaimTopicsRegistry\n  the event is emitted by the 'addClaimTopic' function\n  `claimTopic` is the required claim added to the Claim Topics Registry"
            },
            "eventSelector": "01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d6",
            "id": 6413,
            "name": "ClaimTopicAdded",
            "nameLocation": "1407:15:35",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6412,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6411,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "claimTopic",
                  "nameLocation": "1439:10:35",
                  "nodeType": "VariableDeclaration",
                  "scope": 6413,
                  "src": "1423:26:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6410,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1423:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1422:28:35"
            },
            "src": "1401:50:35"
          },
          {
            "anonymous": false,
            "documentation": {
              "id": 6414,
              "nodeType": "StructuredDocumentation",
              "src": "1457:252:35",
              "text": "  this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry\n  the event is emitted by the 'removeClaimTopic' function\n  `claimTopic` is the required claim removed from the Claim Topics Registry"
            },
            "eventSelector": "0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec5",
            "id": 6418,
            "name": "ClaimTopicRemoved",
            "nameLocation": "1720:17:35",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6416,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "claimTopic",
                  "nameLocation": "1754:10:35",
                  "nodeType": "VariableDeclaration",
                  "scope": 6418,
                  "src": "1738:26:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6415,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1738:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1737:28:35"
            },
            "src": "1714:52:35"
          },
          {
            "documentation": {
              "id": 6419,
              "nodeType": "StructuredDocumentation",
              "src": "1772:191:35",
              "text": " @dev Add a trusted claim topic (For example: KYC=1, AML=2).\n Only owner can call.\n emits `ClaimTopicAdded` event\n @param _claimTopic The claim topic index"
            },
            "functionSelector": "c7b22551",
            "id": 6424,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addClaimTopic",
            "nameLocation": "1977:13:35",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6422,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6421,
                  "mutability": "mutable",
                  "name": "_claimTopic",
                  "nameLocation": "1999:11:35",
                  "nodeType": "VariableDeclaration",
                  "scope": 6424,
                  "src": "1991:19:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6420,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1991:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1990:21:35"
            },
            "returnParameters": {
              "id": 6423,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2020:0:35"
            },
            "scope": 6444,
            "src": "1968:53:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 6425,
              "nodeType": "StructuredDocumentation",
              "src": "2027:200:35",
              "text": "  @dev Remove a trusted claim topic (For example: KYC=1, AML=2).\n  Only owner can call.\n  emits `ClaimTopicRemoved` event\n  @param _claimTopic The claim topic index"
            },
            "functionSelector": "08297846",
            "id": 6430,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeClaimTopic",
            "nameLocation": "2241:16:35",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6428,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6427,
                  "mutability": "mutable",
                  "name": "_claimTopic",
                  "nameLocation": "2266:11:35",
                  "nodeType": "VariableDeclaration",
                  "scope": 6430,
                  "src": "2258:19:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6426,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2258:7:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2257:21:35"
            },
            "returnParameters": {
              "id": 6429,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2287:0:35"
            },
            "scope": 6444,
            "src": "2232:56:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 6431,
              "nodeType": "StructuredDocumentation",
              "src": "2294:122:35",
              "text": "  @dev Get the trusted claim topics for the security token\n  @return Array of trusted claim topics"
            },
            "functionSelector": "df09d604",
            "id": 6437,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimTopics",
            "nameLocation": "2430:14:35",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6432,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2444:2:35"
            },
            "returnParameters": {
              "id": 6436,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6435,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6437,
                  "src": "2470:16:35",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6433,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2470:7:35",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6434,
                    "nodeType": "ArrayTypeName",
                    "src": "2470:9:35",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2469:18:35"
            },
            "scope": 6444,
            "src": "2421:67:35",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "documentation": {
              "id": 6438,
              "nodeType": "StructuredDocumentation",
              "src": "2494:165:35",
              "text": "  @dev Transfers the Ownership of ClaimTopics to a new Owner.\n  Only owner can call.\n  @param _newOwner The new owner of this contract."
            },
            "functionSelector": "d5144472",
            "id": 6443,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferOwnershipOnClaimTopicsRegistryContract",
            "nameLocation": "2673:46:35",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6440,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "2728:9:35",
                  "nodeType": "VariableDeclaration",
                  "scope": 6443,
                  "src": "2720:17:35",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6439,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2720:7:35",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2719:19:35"
            },
            "returnParameters": {
              "id": 6442,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2747:0:35"
            },
            "scope": 6444,
            "src": "2664:84:35",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 6445,
        "src": "1118:1632:35",
        "usedErrors": []
      }
    ],
    "src": "1093:1658:35"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.17+commit.8df45f5f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.8",
  "updatedAt": "2022-12-08T12:51:01.368Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "addClaimTopic(uint256)": {
        "details": "Add a trusted claim topic (For example: KYC=1, AML=2). Only owner can call. emits `ClaimTopicAdded` event",
        "params": {
          "_claimTopic": "The claim topic index"
        }
      },
      "getClaimTopics()": {
        "details": "Get the trusted claim topics for the security token",
        "returns": {
          "_0": "Array of trusted claim topics"
        }
      },
      "removeClaimTopic(uint256)": {
        "details": "Remove a trusted claim topic (For example: KYC=1, AML=2).  Only owner can call.  emits `ClaimTopicRemoved` event",
        "params": {
          "_claimTopic": "The claim topic index"
        }
      },
      "transferOwnershipOnClaimTopicsRegistryContract(address)": {
        "details": "Transfers the Ownership of ClaimTopics to a new Owner.  Only owner can call.",
        "params": {
          "_newOwner": "The new owner of this contract."
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "ClaimTopicAdded(uint256)": {
        "notice": "this event is emitted when a claim topic has been added to the ClaimTopicsRegistry  the event is emitted by the 'addClaimTopic' function  `claimTopic` is the required claim added to the Claim Topics Registry"
      },
      "ClaimTopicRemoved(uint256)": {
        "notice": "this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry  the event is emitted by the 'removeClaimTopic' function  `claimTopic` is the required claim removed from the Claim Topics Registry"
      }
    },
    "kind": "user",
    "methods": {},
    "version": 1
  }
}