{"fileName":"ERC20Detailed.sol","contractName":"ERC20Detailed","source":"pragma solidity ^0.5.2;\n\nimport \"zos-lib/contracts/Initializable.sol\";\nimport \"./IERC20.sol\";\n\n/**\n * @title ERC20Detailed token\n * @dev The decimals are only for visualization purposes.\n * All the operations are done using the smallest and indivisible token unit,\n * just as on Ethereum all the operations are done in wei.\n */\ncontract ERC20Detailed is Initializable, IERC20 {\n    string private _name;\n    string private _symbol;\n    uint8 private _decimals;\n\n    function initialize(string memory name, string memory symbol, uint8 decimals) public initializer {\n        _name = name;\n        _symbol = symbol;\n        _decimals = decimals;\n    }\n\n    /**\n     * @return the name of the token.\n     */\n    function name() public view returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @return the symbol of the token.\n     */\n    function symbol() public view returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @return the number of decimals of the token.\n     */\n    function decimals() public view returns (uint8) {\n        return _decimals;\n    }\n\n    uint256[50] private ______gap;\n}\n","sourcePath":"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol","sourceMap":"","deployedSourceMap":"","abi":[{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"uint8","name":"decimals","type":"uint8"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"}],"ast":{"absolutePath":"openzeppelin-eth/contracts/token/ERC20/ERC20Detailed.sol","exportedSymbols":{"ERC20Detailed":[1882]},"id":1883,"nodeType":"SourceUnit","nodes":[{"id":1817,"literals":["solidity","^","0.5",".2"],"nodeType":"PragmaDirective","src":"0:23:11"},{"absolutePath":"zos-lib/contracts/Initializable.sol","file":"zos-lib/contracts/Initializable.sol","id":1818,"nodeType":"ImportDirective","scope":1883,"sourceUnit":2629,"src":"25:45:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-eth/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":1819,"nodeType":"ImportDirective","scope":1883,"sourceUnit":2124,"src":"71:22:11","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1820,"name":"Initializable","nodeType":"UserDefinedTypeName","referencedDeclaration":2628,"src":"354:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$2628","typeString":"contract Initializable"}},"id":1821,"nodeType":"InheritanceSpecifier","src":"354:13:11"},{"arguments":null,"baseName":{"contractScope":null,"id":1822,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2123,"src":"369:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$2123","typeString":"contract IERC20"}},"id":1823,"nodeType":"InheritanceSpecifier","src":"369:6:11"}],"contractDependencies":[2123,2628],"contractKind":"contract","documentation":"@title ERC20Detailed token\n@dev The decimals are only for visualization purposes.\nAll the operations are done using the smallest and indivisible token unit,\njust as on Ethereum all the operations are done in wei.","fullyImplemented":false,"id":1882,"linearizedBaseContracts":[1882,2123,2628],"name":"ERC20Detailed","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1825,"name":"_name","nodeType":"VariableDeclaration","scope":1882,"src":"382:20:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1824,"name":"string","nodeType":"ElementaryTypeName","src":"382:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"private"},{"constant":false,"id":1827,"name":"_symbol","nodeType":"VariableDeclaration","scope":1882,"src":"408:22:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1826,"name":"string","nodeType":"ElementaryTypeName","src":"408:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"private"},{"constant":false,"id":1829,"name":"_decimals","nodeType":"VariableDeclaration","scope":1882,"src":"436:23:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1828,"name":"uint8","nodeType":"ElementaryTypeName","src":"436:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"private"},{"body":{"id":1852,"nodeType":"Block","src":"563:85:11","statements":[{"expression":{"argumentTypes":null,"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1840,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1825,"src":"573:5:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1841,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1831,"src":"581:4:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"573:12:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1843,"nodeType":"ExpressionStatement","src":"573:12:11"},{"expression":{"argumentTypes":null,"id":1846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1844,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"595:7:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1845,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1833,"src":"605:6:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"595:16:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1847,"nodeType":"ExpressionStatement","src":"595:16:11"},{"expression":{"argumentTypes":null,"id":1850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1848,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"621:9:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1849,"name":"decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1835,"src":"633:8:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"621:20:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":1851,"nodeType":"ExpressionStatement","src":"621:20:11"}]},"documentation":null,"id":1853,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1838,"modifierName":{"argumentTypes":null,"id":1837,"name":"initializer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2609,"src":"551:11:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"551:11:11"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":1836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1831,"name":"name","nodeType":"VariableDeclaration","scope":1853,"src":"486:18:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1830,"name":"string","nodeType":"ElementaryTypeName","src":"486:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1833,"name":"symbol","nodeType":"VariableDeclaration","scope":1853,"src":"506:20:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1832,"name":"string","nodeType":"ElementaryTypeName","src":"506:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1835,"name":"decimals","nodeType":"VariableDeclaration","scope":1853,"src":"528:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1834,"name":"uint8","nodeType":"ElementaryTypeName","src":"528:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"485:58:11"},"returnParameters":{"id":1839,"nodeType":"ParameterList","parameters":[],"src":"563:0:11"},"scope":1882,"src":"466:182:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1860,"nodeType":"Block","src":"760:29:11","statements":[{"expression":{"argumentTypes":null,"id":1858,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1825,"src":"777:5:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1857,"id":1859,"nodeType":"Return","src":"770:12:11"}]},"documentation":"@return the name of the token.","id":1861,"implemented":true,"kind":"function","modifiers":[],"name":"name","nodeType":"FunctionDefinition","parameters":{"id":1854,"nodeType":"ParameterList","parameters":[],"src":"721:2:11"},"returnParameters":{"id":1857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1856,"name":"","nodeType":"VariableDeclaration","scope":1861,"src":"745:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1855,"name":"string","nodeType":"ElementaryTypeName","src":"745:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"744:15:11"},"scope":1882,"src":"708:81:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":1868,"nodeType":"Block","src":"905:31:11","statements":[{"expression":{"argumentTypes":null,"id":1866,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"922:7:11","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":1865,"id":1867,"nodeType":"Return","src":"915:14:11"}]},"documentation":"@return the symbol of the token.","id":1869,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nodeType":"FunctionDefinition","parameters":{"id":1862,"nodeType":"ParameterList","parameters":[],"src":"866:2:11"},"returnParameters":{"id":1865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1864,"name":"","nodeType":"VariableDeclaration","scope":1869,"src":"890:13:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1863,"name":"string","nodeType":"ElementaryTypeName","src":"890:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"889:15:11"},"scope":1882,"src":"851:85:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":1876,"nodeType":"Block","src":"1058:33:11","statements":[{"expression":{"argumentTypes":null,"id":1874,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"1075:9:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":1873,"id":1875,"nodeType":"Return","src":"1068:16:11"}]},"documentation":"@return the number of decimals of the token.","id":1877,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nodeType":"FunctionDefinition","parameters":{"id":1870,"nodeType":"ParameterList","parameters":[],"src":"1027:2:11"},"returnParameters":{"id":1873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1872,"name":"","nodeType":"VariableDeclaration","scope":1877,"src":"1051:5:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1871,"name":"uint8","nodeType":"ElementaryTypeName","src":"1051:5:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"src":"1050:7:11"},"scope":1882,"src":"1010:81:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"constant":false,"id":1881,"name":"______gap","nodeType":"VariableDeclaration","scope":1882,"src":"1097:29:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":1878,"name":"uint256","nodeType":"ElementaryTypeName","src":"1097:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1880,"length":{"argumentTypes":null,"hexValue":"3530","id":1879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1105:2:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"1097:11:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"value":null,"visibility":"private"}],"scope":1883,"src":"328:801:11"}],"src":"0:1130:11"},"bytecode":"0x","deployedBytecode":"0x","compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang","optimizer":{},"evmVersion":"constantinople"}}
