{
  "contractName": "IST20",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "tokenDetails",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_spender",
          "type": "address"
        },
        {
          "name": "_addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseApproval",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_owner",
          "type": "address"
        },
        {
          "name": "_spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "Minted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_burner",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Burnt",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_from",
          "type": "address"
        },
        {
          "name": "_to",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "verifyTransfer",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_investor",
          "type": "address"
        },
        {
          "name": "_amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "name": "success",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.4.24;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol\";\n\n/**\n * @title Interface for the ST20 token standard\n */\ncontract IST20 is StandardToken, DetailedERC20 {\n\n    // off-chain hash\n    string public tokenDetails;\n\n    //transfer, transferFrom must respect use respect the result of verifyTransfer\n    function verifyTransfer(address _from, address _to, uint256 _amount) public returns (bool success);\n\n    /**\n     * @notice mints new tokens and assigns them to the target _investor.\n     * Can only be called by the STO attached to the token (Or by the ST owner if there's no STO attached yet)\n     */\n    function mint(address _investor, uint256 _amount) public returns (bool success);\n\n    /**\n     * @notice Burn function used to burn the securityToken\n     * @param _value No. of token that get burned\n     */\n    function burn(uint256 _value) public;\n\n    event Minted(address indexed to, uint256 amount);\n    event Burnt(address indexed _burner, uint256 _value);\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IST20.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IST20.sol",
    "exportedSymbols": {
      "IST20": [
        10048
      ]
    },
    "id": 10049,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10002,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:17"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol",
        "id": 10003,
        "nodeType": "ImportDirective",
        "scope": 10049,
        "sourceUnit": 23117,
        "src": "26:71:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "id": 10004,
        "nodeType": "ImportDirective",
        "scope": 10049,
        "sourceUnit": 22795,
        "src": "98:71:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10005,
              "name": "StandardToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 23116,
              "src": "245:13:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StandardToken_$23116",
                "typeString": "contract StandardToken"
              }
            },
            "id": 10006,
            "nodeType": "InheritanceSpecifier",
            "src": "245:13:17"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10007,
              "name": "DetailedERC20",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22794,
              "src": "260:13:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DetailedERC20_$22794",
                "typeString": "contract DetailedERC20"
              }
            },
            "id": 10008,
            "nodeType": "InheritanceSpecifier",
            "src": "260:13:17"
          }
        ],
        "contractDependencies": [
          22760,
          22794,
          22837,
          22869,
          23116
        ],
        "contractKind": "contract",
        "documentation": "@title Interface for the ST20 token standard",
        "fullyImplemented": false,
        "id": 10048,
        "linearizedBaseContracts": [
          10048,
          22794,
          23116,
          22760,
          22837,
          22869
        ],
        "name": "IST20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10010,
            "name": "tokenDetails",
            "nodeType": "VariableDeclaration",
            "scope": 10048,
            "src": "303:26:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 10009,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "303:6:17",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 10021,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "verifyTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10012,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "443:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10011,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10014,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "458:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10013,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "458:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10016,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "471:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10015,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "471:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "442:45:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10019,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "504:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10018,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "504:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "503:14:17"
            },
            "scope": 10048,
            "src": "419:99:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": "@notice mints new tokens and assigns them to the target _investor.\nCan only be called by the STO attached to the token (Or by the ST owner if there's no STO attached yet)",
            "id": 10030,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10023,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "739:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10022,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "739:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10025,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "758:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "758:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "738:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10028,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "791:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10027,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "791:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "790:14:17"
            },
            "scope": 10048,
            "src": "725:80:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": "@notice Burn function used to burn the securityToken\n@param _value No. of token that get burned",
            "id": 10035,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10032,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 10035,
                  "src": "951:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10031,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "951:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "950:16:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10034,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "973:0:17"
            },
            "scope": 10048,
            "src": "937:37:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10041,
            "name": "Minted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10037,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 10041,
                  "src": "993:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "993:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10039,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10041,
                  "src": "1013:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10038,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "992:36:17"
            },
            "src": "980:49:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10047,
            "name": "Burnt",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10046,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10043,
                  "indexed": true,
                  "name": "_burner",
                  "nodeType": "VariableDeclaration",
                  "scope": 10047,
                  "src": "1046:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10042,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1046:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10045,
                  "indexed": false,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 10047,
                  "src": "1071:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10044,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1045:41:17"
            },
            "src": "1034:53:17"
          }
        ],
        "scope": 10049,
        "src": "227:863:17"
      }
    ],
    "src": "0:1091:17"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IST20.sol",
    "exportedSymbols": {
      "IST20": [
        10048
      ]
    },
    "id": 10049,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10002,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:17"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/StandardToken.sol",
        "id": 10003,
        "nodeType": "ImportDirective",
        "scope": 10049,
        "sourceUnit": 23117,
        "src": "26:71:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "file": "openzeppelin-solidity/contracts/token/ERC20/DetailedERC20.sol",
        "id": 10004,
        "nodeType": "ImportDirective",
        "scope": 10049,
        "sourceUnit": 22795,
        "src": "98:71:17",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10005,
              "name": "StandardToken",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 23116,
              "src": "245:13:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StandardToken_$23116",
                "typeString": "contract StandardToken"
              }
            },
            "id": 10006,
            "nodeType": "InheritanceSpecifier",
            "src": "245:13:17"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10007,
              "name": "DetailedERC20",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22794,
              "src": "260:13:17",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_DetailedERC20_$22794",
                "typeString": "contract DetailedERC20"
              }
            },
            "id": 10008,
            "nodeType": "InheritanceSpecifier",
            "src": "260:13:17"
          }
        ],
        "contractDependencies": [
          22760,
          22794,
          22837,
          22869,
          23116
        ],
        "contractKind": "contract",
        "documentation": "@title Interface for the ST20 token standard",
        "fullyImplemented": false,
        "id": 10048,
        "linearizedBaseContracts": [
          10048,
          22794,
          23116,
          22760,
          22837,
          22869
        ],
        "name": "IST20",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10010,
            "name": "tokenDetails",
            "nodeType": "VariableDeclaration",
            "scope": 10048,
            "src": "303:26:17",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 10009,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "303:6:17",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": null,
            "id": 10021,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "verifyTransfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10012,
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "443:13:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10011,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "443:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10014,
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "458:11:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10013,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "458:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10016,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "471:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10015,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "471:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "442:45:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10019,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 10021,
                  "src": "504:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10018,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "504:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "503:14:17"
            },
            "scope": 10048,
            "src": "419:99:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": "@notice mints new tokens and assigns them to the target _investor.\nCan only be called by the STO attached to the token (Or by the ST owner if there's no STO attached yet)",
            "id": 10030,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10026,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10023,
                  "name": "_investor",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "739:17:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10022,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "739:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10025,
                  "name": "_amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "758:15:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "758:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "738:36:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10029,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10028,
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "scope": 10030,
                  "src": "791:12:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10027,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "791:4:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "790:14:17"
            },
            "scope": 10048,
            "src": "725:80:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": null,
            "documentation": "@notice Burn function used to burn the securityToken\n@param _value No. of token that get burned",
            "id": 10035,
            "implemented": false,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10032,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 10035,
                  "src": "951:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10031,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "951:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "950:16:17"
            },
            "payable": false,
            "returnParameters": {
              "id": 10034,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "973:0:17"
            },
            "scope": 10048,
            "src": "937:37:17",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10041,
            "name": "Minted",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10037,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 10041,
                  "src": "993:18:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10036,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "993:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10039,
                  "indexed": false,
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "scope": 10041,
                  "src": "1013:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10038,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1013:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "992:36:17"
            },
            "src": "980:49:17"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10047,
            "name": "Burnt",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10046,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10043,
                  "indexed": true,
                  "name": "_burner",
                  "nodeType": "VariableDeclaration",
                  "scope": 10047,
                  "src": "1046:23:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10042,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1046:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10045,
                  "indexed": false,
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "scope": 10047,
                  "src": "1071:14:17",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10044,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:17",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1045:41:17"
            },
            "src": "1034:53:17"
          }
        ],
        "scope": 10049,
        "src": "227:863:17"
      }
    ],
    "src": "0:1091:17"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:12.398Z"
}