{
  "contractName": "RegistryUpdater",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "tickerRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "polyToken",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "polymathRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "moduleRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "securityTokenRegistry",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_polymathRegistry",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "updateFromRegistry",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506040516020806106d7833981016040525160008054600160a060020a03191633179055600160a060020a038116151561004957600080fd5b60018054600160a060020a031916600160a060020a039290921691909117905561065f806100786000396000f3006080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632a858126811461009d5780636faa22a5146100ce578063715018a6146100e357806377282b70146100fa5780638da5cb5b1461010f578063b95459e414610124578063ce4dbdff14610139578063f2fde38b1461014e578063f433262f1461016f575b600080fd5b3480156100a957600080fd5b506100b2610184565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610193565b3480156100ef57600080fd5b506100f86101a2565b005b34801561010657600080fd5b506100b261020e565b34801561011b57600080fd5b506100b261021d565b34801561013057600080fd5b506100b261022c565b34801561014557600080fd5b506100b261023b565b34801561015a57600080fd5b506100f8600160a060020a036004351661024a565b34801561017b57600080fd5b506100f861026d565b600454600160a060020a031681565b600554600160a060020a031681565b600054600160a060020a031633146101b957600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600054600160a060020a031681565b600254600160a060020a031681565b600354600160a060020a031681565b600054600160a060020a0316331461026157600080fd5b61026a816105b6565b50565b600054600160a060020a0316331461028457600080fd5b6001546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f4d6f64756c65526567697374727900000000000000000000000000000000000060448301529151600160a060020a039093169263bf40fac1926064808401939192918290030181600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b50516002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790556001546040805160e060020a63bf40fac1028152602060048201819052601560248301527f5365637572697479546f6b656e5265676973747279000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b1580156103ca57600080fd5b505af11580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50516003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790556001546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f5469636b6572526567697374727900000000000000000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b15801561049357600080fd5b505af11580156104a7573d6000803e3d6000fd5b505050506040513d60208110156104bd57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161781556001546040805160e060020a63bf40fac10281526020938101849052600960248201527f506f6c79546f6b656e000000000000000000000000000000000000000000000060448201529051919093169263bf40fac19260648083019391928290030181600087803b15801561055c57600080fd5b505af1158015610570573d6000803e3d6000fd5b505050506040513d602081101561058657600080fd5b50516005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156105cb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058207e93c57e2779daaddb3a05e9d401d141681058515e58e18bf77dfb35c5fab5e30029",
  "deployedBytecode": "0x6080604052600436106100985763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416632a858126811461009d5780636faa22a5146100ce578063715018a6146100e357806377282b70146100fa5780638da5cb5b1461010f578063b95459e414610124578063ce4dbdff14610139578063f2fde38b1461014e578063f433262f1461016f575b600080fd5b3480156100a957600080fd5b506100b2610184565b60408051600160a060020a039092168252519081900360200190f35b3480156100da57600080fd5b506100b2610193565b3480156100ef57600080fd5b506100f86101a2565b005b34801561010657600080fd5b506100b261020e565b34801561011b57600080fd5b506100b261021d565b34801561013057600080fd5b506100b261022c565b34801561014557600080fd5b506100b261023b565b34801561015a57600080fd5b506100f8600160a060020a036004351661024a565b34801561017b57600080fd5b506100f861026d565b600454600160a060020a031681565b600554600160a060020a031681565b600054600160a060020a031633146101b957600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b600154600160a060020a031681565b600054600160a060020a031681565b600254600160a060020a031681565b600354600160a060020a031681565b600054600160a060020a0316331461026157600080fd5b61026a816105b6565b50565b600054600160a060020a0316331461028457600080fd5b6001546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f4d6f64756c65526567697374727900000000000000000000000000000000000060448301529151600160a060020a039093169263bf40fac1926064808401939192918290030181600087803b15801561030157600080fd5b505af1158015610315573d6000803e3d6000fd5b505050506040513d602081101561032b57600080fd5b50516002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790556001546040805160e060020a63bf40fac1028152602060048201819052601560248301527f5365637572697479546f6b656e5265676973747279000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b1580156103ca57600080fd5b505af11580156103de573d6000803e3d6000fd5b505050506040513d60208110156103f457600080fd5b50516003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790556001546040805160e060020a63bf40fac1028152602060048201819052600e60248301527f5469636b6572526567697374727900000000000000000000000000000000000060448301529151929093169263bf40fac192606480830193928290030181600087803b15801561049357600080fd5b505af11580156104a7573d6000803e3d6000fd5b505050506040513d60208110156104bd57600080fd5b50516004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161781556001546040805160e060020a63bf40fac10281526020938101849052600960248201527f506f6c79546f6b656e000000000000000000000000000000000000000000000060448201529051919093169263bf40fac19260648083019391928290030181600087803b15801561055c57600080fd5b505af1158015610570573d6000803e3d6000fd5b505050506040513d602081101561058657600080fd5b50516005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600160a060020a03811615156105cb57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555600a165627a7a723058207e93c57e2779daaddb3a05e9d401d141681058515e58e18bf77dfb35c5fab5e30029",
  "sourceMap": "124:800:5:-;;;347:150;8:9:-1;5:2;;;30:1;27;20:12;5:2;347:150:5;;;;;;;;;;;;;567:5:64;:18;;-1:-1:-1;;;;;;567:18:64;575:10;567:18;;;-1:-1:-1;;;;;412:31:5;;;;404:40;;;;;;454:16;:36;;-1:-1:-1;;;;;;454:36:5;-1:-1:-1;;;;;454:36:5;;;;;;;;;;124:800;;;-1:-1:-1;124:800:5;;",
  "deployedSourceMap": "124:800:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;281:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;281:29:5;;;;;;;;-1:-1:-1;;;;;281:29:5;;;;;;;;;;;;;;316:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;316:24:5;;;;827:111:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;827:111:64;;;;;;167:31:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;167:31:5;;;;238:20:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:64;;;;204:29:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:29:5;;;;239:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:36:5;;;;1100:103:64;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1100:103:64;-1:-1:-1;;;;;1100:103:64;;;;;503:418:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;503:418:5;;;;281:29;;;-1:-1:-1;;;;;281:29:5;;:::o;316:24::-;;;-1:-1:-1;;;;;316:24:5;;:::o;827:111:64:-;719:5;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;903:5;;;884:25;;-1:-1:-1;;;;;903:5:64;;;;884:25;;;931:1;915:18;;-1:-1:-1;;915:18:64;;;827:111::o;167:31:5:-;;;-1:-1:-1;;;;;167:31:5;;:::o;238:20:64:-;;;-1:-1:-1;;;;;238:20:64;;:::o;204:29:5:-;;;-1:-1:-1;;;;;204:29:5;;:::o;239:36::-;;;-1:-1:-1;;;;;239:36:5;;:::o;1100:103:64:-;719:5;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;1169:29;1188:9;1169:18;:29::i;:::-;1100:103;:::o;503:418:5:-;719:5:64;;-1:-1:-1;;;;;719:5:64;705:10;:19;697:28;;;;;;594:16:5;;577:63;;;-1:-1:-1;;;;;577:63:5;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;594:16:5;;;;577:45;;:63;;;;;;;;;;;;;594:16;;577:63;;;5:2:-1;;;;30:1;27;20:12;5:2;577:63:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;577:63:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;577:63:5;560:14;:80;;-1:-1:-1;;560:80:5;-1:-1:-1;;;;;560:80:5;;;;;;-1:-1:-1;691:16:5;674:70;;;-1:-1:-1;;;;;674:70:5;;577:63;674:70;;;;;;;;;;;;;;;;;;691:16;;;;;674:45;;:70;;;;;577:63;674:70;;;;;-1:-1:-1;691:16:5;674:70;;;5:2:-1;;;;30:1;27;20:12;5:2;674:70:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;674:70:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;674:70:5;650:21;:94;;-1:-1:-1;;650:94:5;-1:-1:-1;;;;;650:94:5;;;;;;-1:-1:-1;788:16:5;771:63;;;-1:-1:-1;;;;;771:63:5;;674:70;771:63;;;;;;;;;;;;;;;;;;788:16;;;;;771:45;;:63;;;;;674:70;771:63;;;;;-1:-1:-1;788:16:5;771:63;;;5:2:-1;;;;30:1;27;20:12;5:2;771:63:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;771:63:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;771:63:5;754:14;:80;;-1:-1:-1;;754:80:5;-1:-1:-1;;;;;754:80:5;;;;;;-1:-1:-1;873:16:5;856:58;;;-1:-1:-1;;;;;856:58:5;;771:63;856:58;;;;;;;;;;;;;;;;;;873:16;;;;;856:45;;:58;;;;;771:63;;856:58;;;;;-1:-1:-1;873:16:5;856:58;;;5:2:-1;;;;30:1;27;20:12;5:2;856:58:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;856:58:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;856:58:5;844:9;:70;;-1:-1:-1;;844:70:5;-1:-1:-1;;;;;844:70:5;;;;;;;;;503:418::o;1338:171:64:-;-1:-1:-1;;;;;1408:23:64;;;;1400:32;;;;;;1464:5;;;1443:38;;-1:-1:-1;;;;;1443:38:64;;;;1464:5;;;1443:38;;;1487:5;:17;;-1:-1:-1;;1487:17:64;-1:-1:-1;;;;;1487:17:64;;;;;;;;;;1338:171::o",
  "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./PolymathRegistry.sol\";\n\ncontract RegistryUpdater is Ownable {\n\n    address public polymathRegistry;\n    address public moduleRegistry;\n    address public securityTokenRegistry;\n    address public tickerRegistry;\n    address public polyToken;\n\n    constructor (address _polymathRegistry) public {\n        require(_polymathRegistry != address(0));\n        polymathRegistry = _polymathRegistry;\n    }\n\n    function updateFromRegistry() onlyOwner public {\n        moduleRegistry = PolymathRegistry(polymathRegistry).getAddress(\"ModuleRegistry\");\n        securityTokenRegistry = PolymathRegistry(polymathRegistry).getAddress(\"SecurityTokenRegistry\");\n        tickerRegistry = PolymathRegistry(polymathRegistry).getAddress(\"TickerRegistry\");\n        polyToken = PolymathRegistry(polymathRegistry).getAddress(\"PolyToken\");\n    }\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/RegistryUpdater.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/RegistryUpdater.sol",
    "exportedSymbols": {
      "RegistryUpdater": [
        676
      ]
    },
    "id": 677,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 601,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:5"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 602,
        "nodeType": "ImportDirective",
        "scope": 677,
        "sourceUnit": 22665,
        "src": "26:63:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/PolymathRegistry.sol",
        "file": "./PolymathRegistry.sol",
        "id": 603,
        "nodeType": "ImportDirective",
        "scope": 677,
        "sourceUnit": 554,
        "src": "90:32:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 604,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22664,
              "src": "152:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$22664",
                "typeString": "contract Ownable"
              }
            },
            "id": 605,
            "nodeType": "InheritanceSpecifier",
            "src": "152:7:5"
          }
        ],
        "contractDependencies": [
          22664
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 676,
        "linearizedBaseContracts": [
          676,
          22664
        ],
        "name": "RegistryUpdater",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 607,
            "name": "polymathRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "167:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 606,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "167:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 609,
            "name": "moduleRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "204:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 608,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "204:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 611,
            "name": "securityTokenRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "239:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 610,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "239:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 613,
            "name": "tickerRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "281:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 612,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "281:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 615,
            "name": "polyToken",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "316:24:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 614,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "316:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 632,
              "nodeType": "Block",
              "src": "394:103:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 621,
                          "name": "_polymathRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 617,
                          "src": "412:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "441:1:5",
                              "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": 622,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "433:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "433:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "412:31:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 620,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "404:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "404:40:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 627,
                  "nodeType": "ExpressionStatement",
                  "src": "404:40:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 628,
                      "name": "polymathRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 607,
                      "src": "454:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 629,
                      "name": "_polymathRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 617,
                      "src": "473:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "454:36:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 631,
                  "nodeType": "ExpressionStatement",
                  "src": "454:36:5"
                }
              ]
            },
            "documentation": null,
            "id": 633,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 617,
                  "name": "_polymathRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 633,
                  "src": "360:25:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 616,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "360:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "359:27:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 619,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "394:0:5"
            },
            "scope": 676,
            "src": "347:150:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 674,
              "nodeType": "Block",
              "src": "550:371:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 638,
                      "name": "moduleRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 609,
                      "src": "560:14:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "4d6f64756c655265676973747279",
                          "id": 643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "623:16:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_83c93739ca6311cebadde2b77580c78794cfdd1e52078a1297520446b6869448",
                            "typeString": "literal_string \"ModuleRegistry\""
                          },
                          "value": "ModuleRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_83c93739ca6311cebadde2b77580c78794cfdd1e52078a1297520446b6869448",
                            "typeString": "literal_string \"ModuleRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 640,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "594:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 639,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "577:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "577:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "577:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 644,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "577:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "560:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 646,
                  "nodeType": "ExpressionStatement",
                  "src": "560:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 647,
                      "name": "securityTokenRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 611,
                      "src": "650:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "5365637572697479546f6b656e5265676973747279",
                          "id": 652,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "720:23:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_97c0f4eaab7342559457b5349966b16ca04477c4f2cbdd8af9bd524706c6413b",
                            "typeString": "literal_string \"SecurityTokenRegistry\""
                          },
                          "value": "SecurityTokenRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_97c0f4eaab7342559457b5349966b16ca04477c4f2cbdd8af9bd524706c6413b",
                            "typeString": "literal_string \"SecurityTokenRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 649,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "691:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 648,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "674:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "674:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "674:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "674:70:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "650:94:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 655,
                  "nodeType": "ExpressionStatement",
                  "src": "650:94:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 656,
                      "name": "tickerRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 613,
                      "src": "754:14:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "5469636b65725265676973747279",
                          "id": 661,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "817:16:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_ab963b24b89baec07a2d4596b4c04db2be2386fc0b51d095fcd83244a793614f",
                            "typeString": "literal_string \"TickerRegistry\""
                          },
                          "value": "TickerRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_ab963b24b89baec07a2d4596b4c04db2be2386fc0b51d095fcd83244a793614f",
                            "typeString": "literal_string \"TickerRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 658,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "788:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 657,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "771:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "771:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "771:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 662,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "771:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "754:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 664,
                  "nodeType": "ExpressionStatement",
                  "src": "754:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 665,
                      "name": "polyToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 615,
                      "src": "844:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "506f6c79546f6b656e",
                          "id": 670,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "902:11:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_1cb285bb920a457e70c0f9ab42103e124a9b44100ffd57ff8d1e26b76a17088d",
                            "typeString": "literal_string \"PolyToken\""
                          },
                          "value": "PolyToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_1cb285bb920a457e70c0f9ab42103e124a9b44100ffd57ff8d1e26b76a17088d",
                            "typeString": "literal_string \"PolyToken\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 667,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "873:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 666,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "856:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 668,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "856:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "856:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "856:58:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "844:70:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 673,
                  "nodeType": "ExpressionStatement",
                  "src": "844:70:5"
                }
              ]
            },
            "documentation": null,
            "id": 675,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 636,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 635,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "533:9:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "533:9:5"
              }
            ],
            "name": "updateFromRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 634,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "530:2:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 637,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "550:0:5"
            },
            "scope": 676,
            "src": "503:418:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 677,
        "src": "124:800:5"
      }
    ],
    "src": "0:925:5"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/RegistryUpdater.sol",
    "exportedSymbols": {
      "RegistryUpdater": [
        676
      ]
    },
    "id": 677,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 601,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:5"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 602,
        "nodeType": "ImportDirective",
        "scope": 677,
        "sourceUnit": 22665,
        "src": "26:63:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/PolymathRegistry.sol",
        "file": "./PolymathRegistry.sol",
        "id": 603,
        "nodeType": "ImportDirective",
        "scope": 677,
        "sourceUnit": 554,
        "src": "90:32:5",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 604,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22664,
              "src": "152:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$22664",
                "typeString": "contract Ownable"
              }
            },
            "id": 605,
            "nodeType": "InheritanceSpecifier",
            "src": "152:7:5"
          }
        ],
        "contractDependencies": [
          22664
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 676,
        "linearizedBaseContracts": [
          676,
          22664
        ],
        "name": "RegistryUpdater",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 607,
            "name": "polymathRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "167:31:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 606,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "167:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 609,
            "name": "moduleRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "204:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 608,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "204:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 611,
            "name": "securityTokenRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "239:36:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 610,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "239:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 613,
            "name": "tickerRegistry",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "281:29:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 612,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "281:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 615,
            "name": "polyToken",
            "nodeType": "VariableDeclaration",
            "scope": 676,
            "src": "316:24:5",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 614,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "316:7:5",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 632,
              "nodeType": "Block",
              "src": "394:103:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 625,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 621,
                          "name": "_polymathRegistry",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 617,
                          "src": "412:17:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 623,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "441:1:5",
                              "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": 622,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "433:7:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 624,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "433:10:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "412:31:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 620,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        23134,
                        23135
                      ],
                      "referencedDeclaration": 23134,
                      "src": "404:7:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "404:40:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 627,
                  "nodeType": "ExpressionStatement",
                  "src": "404:40:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 630,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 628,
                      "name": "polymathRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 607,
                      "src": "454:16:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 629,
                      "name": "_polymathRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 617,
                      "src": "473:17:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "454:36:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 631,
                  "nodeType": "ExpressionStatement",
                  "src": "454:36:5"
                }
              ]
            },
            "documentation": null,
            "id": 633,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 618,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 617,
                  "name": "_polymathRegistry",
                  "nodeType": "VariableDeclaration",
                  "scope": 633,
                  "src": "360:25:5",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 616,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "360:7:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "359:27:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 619,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "394:0:5"
            },
            "scope": 676,
            "src": "347:150:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 674,
              "nodeType": "Block",
              "src": "550:371:5",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 645,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 638,
                      "name": "moduleRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 609,
                      "src": "560:14:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "4d6f64756c655265676973747279",
                          "id": 643,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "623:16:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_83c93739ca6311cebadde2b77580c78794cfdd1e52078a1297520446b6869448",
                            "typeString": "literal_string \"ModuleRegistry\""
                          },
                          "value": "ModuleRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_83c93739ca6311cebadde2b77580c78794cfdd1e52078a1297520446b6869448",
                            "typeString": "literal_string \"ModuleRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 640,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "594:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 639,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "577:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 641,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "577:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 642,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "577:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 644,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "577:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "560:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 646,
                  "nodeType": "ExpressionStatement",
                  "src": "560:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 647,
                      "name": "securityTokenRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 611,
                      "src": "650:21:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "5365637572697479546f6b656e5265676973747279",
                          "id": 652,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "720:23:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_97c0f4eaab7342559457b5349966b16ca04477c4f2cbdd8af9bd524706c6413b",
                            "typeString": "literal_string \"SecurityTokenRegistry\""
                          },
                          "value": "SecurityTokenRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_97c0f4eaab7342559457b5349966b16ca04477c4f2cbdd8af9bd524706c6413b",
                            "typeString": "literal_string \"SecurityTokenRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 649,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "691:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 648,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "674:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 650,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "674:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 651,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "674:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "674:70:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "650:94:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 655,
                  "nodeType": "ExpressionStatement",
                  "src": "650:94:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 663,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 656,
                      "name": "tickerRegistry",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 613,
                      "src": "754:14:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "5469636b65725265676973747279",
                          "id": 661,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "817:16:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_ab963b24b89baec07a2d4596b4c04db2be2386fc0b51d095fcd83244a793614f",
                            "typeString": "literal_string \"TickerRegistry\""
                          },
                          "value": "TickerRegistry"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_ab963b24b89baec07a2d4596b4c04db2be2386fc0b51d095fcd83244a793614f",
                            "typeString": "literal_string \"TickerRegistry\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 658,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "788:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 657,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "771:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 659,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "771:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 660,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "771:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 662,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "771:63:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "754:80:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 664,
                  "nodeType": "ExpressionStatement",
                  "src": "754:80:5"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 672,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 665,
                      "name": "polyToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 615,
                      "src": "844:9:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "506f6c79546f6b656e",
                          "id": 670,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "902:11:5",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_1cb285bb920a457e70c0f9ab42103e124a9b44100ffd57ff8d1e26b76a17088d",
                            "typeString": "literal_string \"PolyToken\""
                          },
                          "value": "PolyToken"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_stringliteral_1cb285bb920a457e70c0f9ab42103e124a9b44100ffd57ff8d1e26b76a17088d",
                            "typeString": "literal_string \"PolyToken\""
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 667,
                              "name": "polymathRegistry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 607,
                              "src": "873:16:5",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 666,
                            "name": "PolymathRegistry",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 553,
                            "src": "856:16:5",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_PolymathRegistry_$553_$",
                              "typeString": "type(contract PolymathRegistry)"
                            }
                          },
                          "id": 668,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "856:34:5",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_PolymathRegistry_$553",
                            "typeString": "contract PolymathRegistry"
                          }
                        },
                        "id": 669,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getAddress",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 520,
                        "src": "856:45:5",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$returns$_t_address_$",
                          "typeString": "function (string memory) view external returns (address)"
                        }
                      },
                      "id": 671,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "856:58:5",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "844:70:5",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 673,
                  "nodeType": "ExpressionStatement",
                  "src": "844:70:5"
                }
              ]
            },
            "documentation": null,
            "id": 675,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [
              {
                "arguments": null,
                "id": 636,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 635,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22612,
                  "src": "533:9:5",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "533:9:5"
              }
            ],
            "name": "updateFromRegistry",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 634,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "530:2:5"
            },
            "payable": false,
            "returnParameters": {
              "id": 637,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "550:0:5"
            },
            "scope": 676,
            "src": "503:418:5",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 677,
        "src": "124:800:5"
      }
    ],
    "src": "0:925:5"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:11.849Z"
}