@gooddollar/goodcontracts
Version:
GoodDollar Contracts
1,371 lines (1,370 loc) • 56.7 kB
JSON
{
"contractName": "ERC20Detailed",
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "symbol",
"type": "string"
},
{
"internalType": "uint8",
"name": "decimals",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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"
},
{
"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"
},
{
"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"
},
{
"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": 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": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"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": 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": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "decimals",
"outputs": [
{
"internalType": "uint8",
"name": "",
"type": "uint8"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\"},{\"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\"},{\"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\"},{\"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\":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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"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\"}],\"devdoc\":{\"details\":\"The decimals are only for visualization purposes. All the operations are done using the smallest and indivisible token unit, just as on Ethereum all the operations are done in wei.\",\"methods\":{\"decimals()\":{\"return\":\"the number of decimals of the token.\"},\"name()\":{\"return\":\"the name of the token.\"},\"symbol()\":{\"return\":\"the symbol of the token.\"}},\"title\":\"ERC20Detailed token\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":\"ERC20Detailed\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol\":{\"keccak256\":\"0xe195405e9993d575173cdb5dd408db7459a026b9a98085c1a3b676f020f46584\",\"urls\":[\"bzz-raw://f6beab874b52e710d2c42334e34bb5592146f7dd148d96ff32c0c474412bf2f4\",\"dweb:/ipfs/QmUKmVUX4Fif7dguPgC459cpGegiJd1s24YhgZUrBUkkDN\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x079c4e23ee448f529e43bfa3c4e8fb4be52cd0318ee923a276835bedf45b93d8\",\"urls\":[\"bzz-raw://ee762ff5b7746e41d27dcbcea00c7a3034b58adb1b45ddadddb5b721aff450df\",\"dweb:/ipfs/QmdxqtgEFZjHCoiYyz6pUAQ5iBm7As25jcyEbZoTaAgyDa\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity ^0.5.0;\n\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 IERC20 {\n string private _name;\n string private _symbol;\n uint8 private _decimals;\n\n constructor (string memory name, string memory symbol, uint8 decimals) public {\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",
"sourcePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol",
"ast": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol",
"exportedSymbols": {
"ERC20Detailed": [
16945
]
},
"id": 16946,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 16889,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:73"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
"file": "./IERC20.sol",
"id": 16890,
"nodeType": "ImportDirective",
"scope": 16946,
"sourceUnit": 17145,
"src": "25:22:73",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16891,
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 17144,
"src": "308:6:73",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$17144",
"typeString": "contract IERC20"
}
},
"id": 16892,
"nodeType": "InheritanceSpecifier",
"src": "308:6:73"
}
],
"contractDependencies": [
17144
],
"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": 16945,
"linearizedBaseContracts": [
16945,
17144
],
"name": "ERC20Detailed",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 16894,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "321:20:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 16893,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "321:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 16896,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "347:22:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 16895,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "347:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 16898,
"name": "_decimals",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "375:23:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 16897,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "375:5:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "private"
},
{
"body": {
"id": 16919,
"nodeType": "Block",
"src": "483:85:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16909,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16907,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16894,
"src": "493:5:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16908,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16900,
"src": "501:4:73",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "493:12:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 16910,
"nodeType": "ExpressionStatement",
"src": "493:12:73"
},
{
"expression": {
"argumentTypes": null,
"id": 16913,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16911,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16896,
"src": "515:7:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16912,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16902,
"src": "525:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "515:16:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 16914,
"nodeType": "ExpressionStatement",
"src": "515:16:73"
},
{
"expression": {
"argumentTypes": null,
"id": 16917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16915,
"name": "_decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16898,
"src": "541:9:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16916,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16904,
"src": "553:8:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"src": "541:20:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 16918,
"nodeType": "ExpressionStatement",
"src": "541:20:73"
}
]
},
"documentation": null,
"id": 16920,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16905,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16900,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "418:18:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16899,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "418:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16902,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "438:20:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16901,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "438:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16904,
"name": "decimals",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "460:14:73",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 16903,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "460:5:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "417:58:73"
},
"returnParameters": {
"id": 16906,
"nodeType": "ParameterList",
"parameters": [],
"src": "483:0:73"
},
"scope": 16945,
"src": "405:163:73",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16927,
"nodeType": "Block",
"src": "680:29:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16925,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16894,
"src": "697:5:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 16924,
"id": 16926,
"nodeType": "Return",
"src": "690:12:73"
}
]
},
"documentation": "@return the name of the token.",
"id": 16928,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "name",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16921,
"nodeType": "ParameterList",
"parameters": [],
"src": "641:2:73"
},
"returnParameters": {
"id": 16924,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16923,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 16928,
"src": "665:13:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16922,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "665:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "664:15:73"
},
"scope": 16945,
"src": "628:81:73",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16935,
"nodeType": "Block",
"src": "825:31:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16933,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16896,
"src": "842:7:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 16932,
"id": 16934,
"nodeType": "Return",
"src": "835:14:73"
}
]
},
"documentation": "@return the symbol of the token.",
"id": 16936,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "symbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16929,
"nodeType": "ParameterList",
"parameters": [],
"src": "786:2:73"
},
"returnParameters": {
"id": 16932,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16931,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 16936,
"src": "810:13:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16930,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "810:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "809:15:73"
},
"scope": 16945,
"src": "771:85:73",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16943,
"nodeType": "Block",
"src": "978:33:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16941,
"name": "_decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16898,
"src": "995:9:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"functionReturnParameters": 16940,
"id": 16942,
"nodeType": "Return",
"src": "988:16:73"
}
]
},
"documentation": "@return the number of decimals of the token.",
"id": 16944,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "decimals",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16937,
"nodeType": "ParameterList",
"parameters": [],
"src": "947:2:73"
},
"returnParameters": {
"id": 16940,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16939,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 16944,
"src": "971:5:73",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 16938,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "971:5:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "970:7:73"
},
"scope": 16945,
"src": "930:81:73",
"stateMutability": "view",
"superFunction": null,
"visibility": "public"
}
],
"scope": 16946,
"src": "282:731:73"
}
],
"src": "0:1014:73"
},
"legacyAST": {
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol",
"exportedSymbols": {
"ERC20Detailed": [
16945
]
},
"id": 16946,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 16889,
"literals": [
"solidity",
"^",
"0.5",
".0"
],
"nodeType": "PragmaDirective",
"src": "0:23:73"
},
{
"absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
"file": "./IERC20.sol",
"id": 16890,
"nodeType": "ImportDirective",
"scope": 16946,
"sourceUnit": 17145,
"src": "25:22:73",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 16891,
"name": "IERC20",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 17144,
"src": "308:6:73",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC20_$17144",
"typeString": "contract IERC20"
}
},
"id": 16892,
"nodeType": "InheritanceSpecifier",
"src": "308:6:73"
}
],
"contractDependencies": [
17144
],
"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": 16945,
"linearizedBaseContracts": [
16945,
17144
],
"name": "ERC20Detailed",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 16894,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "321:20:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 16893,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "321:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 16896,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "347:22:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 16895,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "347:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "private"
},
{
"constant": false,
"id": 16898,
"name": "_decimals",
"nodeType": "VariableDeclaration",
"scope": 16945,
"src": "375:23:73",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 16897,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "375:5:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "private"
},
{
"body": {
"id": 16919,
"nodeType": "Block",
"src": "483:85:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16909,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16907,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16894,
"src": "493:5:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16908,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16900,
"src": "501:4:73",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "493:12:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 16910,
"nodeType": "ExpressionStatement",
"src": "493:12:73"
},
{
"expression": {
"argumentTypes": null,
"id": 16913,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16911,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16896,
"src": "515:7:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16912,
"name": "symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16902,
"src": "525:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "515:16:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 16914,
"nodeType": "ExpressionStatement",
"src": "515:16:73"
},
{
"expression": {
"argumentTypes": null,
"id": 16917,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 16915,
"name": "_decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16898,
"src": "541:9:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 16916,
"name": "decimals",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16904,
"src": "553:8:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"src": "541:20:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"id": 16918,
"nodeType": "ExpressionStatement",
"src": "541:20:73"
}
]
},
"documentation": null,
"id": 16920,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16905,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16900,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "418:18:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16899,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "418:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16902,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "438:20:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16901,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "438:6:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 16904,
"name": "decimals",
"nodeType": "VariableDeclaration",
"scope": 16920,
"src": "460:14:73",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
},
"typeName": {
"id": 16903,
"name": "uint8",
"nodeType": "ElementaryTypeName",
"src": "460:5:73",
"typeDescriptions": {
"typeIdentifier": "t_uint8",
"typeString": "uint8"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "417:58:73"
},
"returnParameters": {
"id": 16906,
"nodeType": "ParameterList",
"parameters": [],
"src": "483:0:73"
},
"scope": 16945,
"src": "405:163:73",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 16927,
"nodeType": "Block",
"src": "680:29:73",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 16925,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 16894,
"src": "697:5:73",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 16924,
"id": 16926,
"nodeType": "Return",
"src": "690:12:73"
}
]
},
"documentation": "@return the name of the token.",
"id": 16928,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "name",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 16921,
"nodeType": "ParameterList",
"parameters": [],
"src": "641:2:73"
},
"returnParameters": {
"id": 16924,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 16923,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 16928,
"src": "665:13:73",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 16922,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "665:6:73",
"typeDescriptions": {