{
  "contractName": "TokenStorage",
  "abi": [],
  "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"_balances\":{\"details\":\"ERC20 basic variables\"},\"frozen\":{\"details\":\"Variables of freeze and pause functions\"},\"tokenCompliance\":{\"details\":\"Compliance contract linked to the onchain validator system\"},\"tokenIdentityRegistry\":{\"details\":\"Identity Registry contract used by the onchain validator system\"},\"tokenName\":{\"details\":\"Token information\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/token/Storage.sol\":\"TokenStorage\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@onchain-id/solidity/contracts/interface/IClaimIssuer.sol\":{\"keccak256\":\"0xd0493be7cb7342962b46f8e2afdca4614ea0fe34a7f493b2da9db7d361a9042c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://105232aae24e3d0fcb4c80c00793b61b6019f6127c0ec6f9e3082ae01b2e778b\",\"dweb:/ipfs/QmV5C1wbq7H5H6DiakafSX5agAAP6rQSZ5qq7Qgq6VLkXo\"]},\"@onchain-id/solidity/contracts/interface/IERC734.sol\":{\"keccak256\":\"0x3302de9e9fe7a548cb7395b6fda38f952f6a6d1c599dfeee181a1ef80741fc1d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fc9f00e5b2f1523fecf52b1a833e9263a53edbebb7d1458f9004cfd41dd0402e\",\"dweb:/ipfs/QmWcNcVQrg66KeQz39jPgJun7jF3CbdJKHQa19q97n5Hzb\"]},\"@onchain-id/solidity/contracts/interface/IERC735.sol\":{\"keccak256\":\"0x3b77ce6012a96cf0075197cdeb1b98b66ca1722ef23241e40ba6185f03bf4584\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://766e139f0c3cc0c6489561e75df0d8eab8c277f90009e4fa19add4f22bb40d82\",\"dweb:/ipfs/QmcbAReZn9nLcnYn9AHiDmcYJ42JqAU5QSy4dKhUcJUnjy\"]},\"@onchain-id/solidity/contracts/interface/IIdentity.sol\":{\"keccak256\":\"0xdcefbe2a850f9f43e959b9f7ed93fd5b35f29ff3dfbfaac7530af737c9eba7c6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2e887c7cc67fdb2710c48bed22dbb27880f6dfb84ee93178ad4fcd659099cb96\",\"dweb:/ipfs/QmUuDEsZJC7uQQEErmuNJzePsNgHiTDdS2TuMzG1GRqrC3\"]},\"project:/contracts/compliance/ICompliance.sol\":{\"keccak256\":\"0x4049905b34eab118c0c3f644450299a5ed8022bbbdb26036e7c2854dae8ae1ba\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f8144953d88f543b2f537514f1136b8adf705837ba6d420b95569f6895153edb\",\"dweb:/ipfs/QmRqM7A6XrofFR67k8RtNNEkriAbKsQHDgUYaKZTMr9Nm5\"]},\"project:/contracts/registry/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0x95f8fa17a716771125b203f00890eceb20ac3807f7a39a25b644427b1ff81d61\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://460dceb9e88957d5ce002b80748767c80a7e146c9b38b055a3c1ca04586b2009\",\"dweb:/ipfs/QmVdqEpGMRzSpLKBCtPzaPGatBgUyNm3NS5rQnkkYMnc1C\"]},\"project:/contracts/registry/IIdentityRegistry.sol\":{\"keccak256\":\"0x16a31f2d35143f99cc6b83d0cf6e9da9543c2b8561712079098f3a39d12ae32a\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7669a9272b1df8e27e0fc3f5f64977b2b16615e585b673383db1eb157a62bf7c\",\"dweb:/ipfs/QmQzXmoFcFyBPehPyiUzGjaKfXJHLEPZMtFTBTgjuCavah\"]},\"project:/contracts/registry/IIdentityRegistryStorage.sol\":{\"keccak256\":\"0x8cd4de1e77c5da8ca2ff732069bc184aef86bcb94f95a5229e5bd6336abbd06d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f88894a3d046940be03a12cc2da3b3fb6efb51e0461fbea060a9a3190cadcf16\",\"dweb:/ipfs/QmNndZUPdpc83A9LungeAsrcencq3CzTum1tkU6KVdSRNC\"]},\"project:/contracts/registry/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x01af20f2f537db3122c60b7c6e60e5036e07c673ef9762428b42129f65fcbc60\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://28f514b876c975777fe84bdb9f96ec5c687e4e4ff5d2b14961ba61affc57d46c\",\"dweb:/ipfs/QmdbVRsg1Q71PVHYxy1r7e5MeiMN5hHHDD8vRnXBSr8JiV\"]},\"project:/contracts/token/Storage.sol\":{\"keccak256\":\"0x15ddd5f8ee0881bf07137cd04ef9d529b2bf8acb006db3c2b451be5ae07ac71c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://09c5d5ef2d9818a431fe3d05024ac03040ec9ca51d9eb43f452f388a9d282025\",\"dweb:/ipfs/QmSUHCthksYjJeoWLTm1Car1zoVHJPKSvuQZEe9YHMCNJw\"]}},\"version\":1}",
  "bytecode": "0x60806040526008805460ff19169055348015601957600080fd5b50603f8060276000396000f3fe6080604052600080fdfea2646970667358221220c4f6f281cebc73b949451503e27af20d15d41d66cf01d91d019f5b4d4a079ecd64736f6c63430008110033",
  "deployedBytecode": "0x6080604052600080fdfea2646970667358221220c4f6f281cebc73b949451503e27af20d15d41d66cf01d91d019f5b4d4a079ecd64736f6c63430008110033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "1202:884:52:-:0;;;1803:33;;;-1:-1:-1;;1803:33:52;;;1202:884;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "1202:884:52:-:0;;;;;",
  "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;\nimport '../compliance/ICompliance.sol';\nimport '../registry/IIdentityRegistry.sol';\n\ncontract TokenStorage {\n    /// @dev ERC20 basic variables\n    mapping(address => uint256) internal _balances;\n    mapping(address => mapping(address => uint256)) internal _allowances;\n    uint256 internal _totalSupply;\n\n    /// @dev Token information\n    string internal tokenName;\n    string internal tokenSymbol;\n    uint8 internal tokenDecimals;\n    address internal tokenOnchainID;\n    string internal constant TOKEN_VERSION = '3.5.1';\n\n    /// @dev Variables of freeze and pause functions\n    mapping(address => bool) internal frozen;\n    mapping(address => uint256) internal frozenTokens;\n\n    bool internal tokenPaused = false;\n\n    /// @dev Identity Registry contract used by the onchain validator system\n    IIdentityRegistry internal tokenIdentityRegistry;\n\n    /// @dev Compliance contract linked to the onchain validator system\n    ICompliance internal tokenCompliance;\n}\n",
  "sourcePath": "/home/webxpert/workspace/shipfinex/latest-repos/tokenx_smartcontract/contracts/token/Storage.sol",
  "ast": {
    "absolutePath": "project:/contracts/token/Storage.sol",
    "exportedSymbols": {
      "IClaimIssuer": [
        1456
      ],
      "IClaimTopicsRegistry": [
        6444
      ],
      "ICompliance": [
        5596
      ],
      "IERC734": [
        1609
      ],
      "IERC735": [
        1734
      ],
      "IIdentity": [
        1743
      ],
      "IIdentityRegistry": [
        6637
      ],
      "IIdentityRegistryStorage": [
        6759
      ],
      "ITrustedIssuersRegistry": [
        6856
      ],
      "TokenStorage": [
        12284
      ]
    },
    "id": 12285,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12236,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1093:23:52"
      },
      {
        "absolutePath": "project:/contracts/compliance/ICompliance.sol",
        "file": "../compliance/ICompliance.sol",
        "id": 12237,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12285,
        "sourceUnit": 5597,
        "src": "1117:39:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/registry/IIdentityRegistry.sol",
        "file": "../registry/IIdentityRegistry.sol",
        "id": 12238,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 12285,
        "sourceUnit": 6638,
        "src": "1157:43:52",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "canonicalName": "TokenStorage",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 12284,
        "linearizedBaseContracts": [
          12284
        ],
        "name": "TokenStorage",
        "nameLocation": "1211:12:52",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "documentation": {
              "id": 12239,
              "nodeType": "StructuredDocumentation",
              "src": "1230:30:52",
              "text": "@dev ERC20 basic variables"
            },
            "id": 12243,
            "mutability": "mutable",
            "name": "_balances",
            "nameLocation": "1302:9:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1265:46:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 12242,
              "keyType": {
                "id": 12240,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1273:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1265:27:52",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 12241,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1284:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12249,
            "mutability": "mutable",
            "name": "_allowances",
            "nameLocation": "1374:11:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1317:68:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
              "typeString": "mapping(address => mapping(address => uint256))"
            },
            "typeName": {
              "id": 12248,
              "keyType": {
                "id": 12244,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1325:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1317:47:52",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$",
                "typeString": "mapping(address => mapping(address => uint256))"
              },
              "valueType": {
                "id": 12247,
                "keyType": {
                  "id": 12245,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "1344:7:52",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "nodeType": "Mapping",
                "src": "1336:27:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                  "typeString": "mapping(address => uint256)"
                },
                "valueType": {
                  "id": 12246,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1355:7:52",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12251,
            "mutability": "mutable",
            "name": "_totalSupply",
            "nameLocation": "1408:12:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1391:29:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 12250,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1391:7:52",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "documentation": {
              "id": 12252,
              "nodeType": "StructuredDocumentation",
              "src": "1427:26:52",
              "text": "@dev Token information"
            },
            "id": 12254,
            "mutability": "mutable",
            "name": "tokenName",
            "nameLocation": "1474:9:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1458:25:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12253,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1458:6:52",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12256,
            "mutability": "mutable",
            "name": "tokenSymbol",
            "nameLocation": "1505:11:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1489:27:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 12255,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1489:6:52",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12258,
            "mutability": "mutable",
            "name": "tokenDecimals",
            "nameLocation": "1537:13:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1522:28:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 12257,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "1522:5:52",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12260,
            "mutability": "mutable",
            "name": "tokenOnchainID",
            "nameLocation": "1573:14:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1556:31:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 12259,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1556:7:52",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 12263,
            "mutability": "constant",
            "name": "TOKEN_VERSION",
            "nameLocation": "1618:13:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1593:48:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 12261,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1593:6:52",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "332e352e31",
              "id": 12262,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1634:7:52",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7d60084881d39891d3a6e4fbcf065f2b744477cb5315758fa1328445fb5ea364",
                "typeString": "literal_string \"3.5.1\""
              },
              "value": "3.5.1"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "documentation": {
              "id": 12264,
              "nodeType": "StructuredDocumentation",
              "src": "1648:48:52",
              "text": "@dev Variables of freeze and pause functions"
            },
            "id": 12268,
            "mutability": "mutable",
            "name": "frozen",
            "nameLocation": "1735:6:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1701:40:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
              "typeString": "mapping(address => bool)"
            },
            "typeName": {
              "id": 12267,
              "keyType": {
                "id": 12265,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1709:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1701:24:52",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_bool_$",
                "typeString": "mapping(address => bool)"
              },
              "valueType": {
                "id": 12266,
                "name": "bool",
                "nodeType": "ElementaryTypeName",
                "src": "1720:4:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_bool",
                  "typeString": "bool"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12272,
            "mutability": "mutable",
            "name": "frozenTokens",
            "nameLocation": "1784:12:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1747:49:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
              "typeString": "mapping(address => uint256)"
            },
            "typeName": {
              "id": 12271,
              "keyType": {
                "id": 12269,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1755:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1747:27:52",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
                "typeString": "mapping(address => uint256)"
              },
              "valueType": {
                "id": 12270,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1766:7:52",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 12275,
            "mutability": "mutable",
            "name": "tokenPaused",
            "nameLocation": "1817:11:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1803:33:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 12273,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1803:4:52",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "hexValue": "66616c7365",
              "id": 12274,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1831:5:52",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "false"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "documentation": {
              "id": 12276,
              "nodeType": "StructuredDocumentation",
              "src": "1843:72:52",
              "text": "@dev Identity Registry contract used by the onchain validator system"
            },
            "id": 12279,
            "mutability": "mutable",
            "name": "tokenIdentityRegistry",
            "nameLocation": "1947:21:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "1920:48:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IIdentityRegistry_$6637",
              "typeString": "contract IIdentityRegistry"
            },
            "typeName": {
              "id": 12278,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 12277,
                "name": "IIdentityRegistry",
                "nameLocations": [
                  "1920:17:52"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 6637,
                "src": "1920:17:52"
              },
              "referencedDeclaration": 6637,
              "src": "1920:17:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IIdentityRegistry_$6637",
                "typeString": "contract IIdentityRegistry"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "documentation": {
              "id": 12280,
              "nodeType": "StructuredDocumentation",
              "src": "1975:67:52",
              "text": "@dev Compliance contract linked to the onchain validator system"
            },
            "id": 12283,
            "mutability": "mutable",
            "name": "tokenCompliance",
            "nameLocation": "2068:15:52",
            "nodeType": "VariableDeclaration",
            "scope": 12284,
            "src": "2047:36:52",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_ICompliance_$5596",
              "typeString": "contract ICompliance"
            },
            "typeName": {
              "id": 12282,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 12281,
                "name": "ICompliance",
                "nameLocations": [
                  "2047:11:52"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5596,
                "src": "2047:11:52"
              },
              "referencedDeclaration": 5596,
              "src": "2047:11:52",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ICompliance_$5596",
                "typeString": "contract ICompliance"
              }
            },
            "visibility": "internal"
          }
        ],
        "scope": 12285,
        "src": "1202:884:52",
        "usedErrors": []
      }
    ],
    "src": "1093:994:52"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.17+commit.8df45f5f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.8",
  "updatedAt": "2022-12-08T12:51:01.408Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "stateVariables": {
      "_balances": {
        "details": "ERC20 basic variables"
      },
      "frozen": {
        "details": "Variables of freeze and pause functions"
      },
      "tokenCompliance": {
        "details": "Compliance contract linked to the onchain validator system"
      },
      "tokenIdentityRegistry": {
        "details": "Identity Registry contract used by the onchain validator system"
      },
      "tokenName": {
        "details": "Token information"
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}