{
  "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": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "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": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "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.17+commit.d19bba13\"},\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"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\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Optional functions from the ERC20 standard.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default.     * This value changes when `approve` or `transferFrom` are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.     * Returns a boolean value indicating whether the operation succeeded.     * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729     * Emits an `Approval` event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"constructor\":{\"details\":\"Sets the values for `name`, `symbol`, and `decimals`. All three of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`).     * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei.     * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`.     * Returns a boolean value indicating whether the operation succeeded.     * Emits a `Transfer` event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance.     * Returns a boolean value indicating whether the operation succeeded.     * Emits a `Transfer` event.\"}}},\"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\":\"0xc61b3603089b09a730d8ca72e9133a496cc4405da40e9b87c12f073245d774bf\",\"urls\":[\"bzz-raw://de8bb0003d53de236913f0e0102e7a9d015e02098f2495edd000f207fe2be2f4\",\"dweb:/ipfs/QmbtwNwAJEehWWL7yGGyyMoenQvcqtz91pqLgQPpLRoLYC\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.5.0;\n\nimport \"./IERC20.sol\";\n\n/**\n * @dev Optional functions from the ERC20 standard.\n */\ncontract ERC20Detailed is IERC20 {\n    string private _name;\n    string private _symbol;\n    uint8 private _decimals;\n\n    /**\n     * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\n     * these values are immutable: they can only be set once during\n     * construction.\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     * @dev Returns the name of the token.\n     */\n    function name() public view returns (string memory) {\n        return _name;\n    }\n\n    /**\n     * @dev Returns the symbol of the token, usually a shorter version of the\n     * name.\n     */\n    function symbol() public view returns (string memory) {\n        return _symbol;\n    }\n\n    /**\n     * @dev Returns the number of decimals used to get its user representation.\n     * For example, if `decimals` equals `2`, a balance of `505` tokens should\n     * be displayed to a user as `5,05` (`505 / 10 ** 2`).\n     *\n     * Tokens usually opt for a value of 18, imitating the relationship between\n     * Ether and Wei.\n     *\n     * > Note that this information is only used for _display_ purposes: it in\n     * no way affects any of the arithmetic of the contract, including\n     * `IERC20.balanceOf` and `IERC20.transfer`.\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": [
        17421
      ]
    },
    "id": 17422,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 17365,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:63"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
        "file": "./IERC20.sol",
        "id": 17366,
        "nodeType": "ImportDirective",
        "scope": 17422,
        "sourceUnit": 17491,
        "src": "25:22:63",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 17367,
              "name": "IERC20",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 17490,
              "src": "135:6:63",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC20_$17490",
                "typeString": "contract IERC20"
              }
            },
            "id": 17368,
            "nodeType": "InheritanceSpecifier",
            "src": "135:6:63"
          }
        ],
        "contractDependencies": [
          17490
        ],
        "contractKind": "contract",
        "documentation": "@dev Optional functions from the ERC20 standard.",
        "fullyImplemented": false,
        "id": 17421,
        "linearizedBaseContracts": [
          17421,
          17490
        ],
        "name": "ERC20Detailed",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 17370,
            "name": "_name",
            "nodeType": "VariableDeclaration",
            "scope": 17421,
            "src": "148:20:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 17369,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "148:6:63",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 17372,
            "name": "_symbol",
            "nodeType": "VariableDeclaration",
            "scope": 17421,
            "src": "174:22:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 17371,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "174:6:63",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 17374,
            "name": "_decimals",
            "nodeType": "VariableDeclaration",
            "scope": 17421,
            "src": "202:23:63",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 17373,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "202:5:63",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "body": {
              "id": 17395,
              "nodeType": "Block",
              "src": "494:85:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 17383,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17370,
                      "src": "504:5:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17384,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17376,
                      "src": "512:4:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "504:12:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 17386,
                  "nodeType": "ExpressionStatement",
                  "src": "504:12:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17389,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 17387,
                      "name": "_symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17372,
                      "src": "526:7:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17388,
                      "name": "symbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17378,
                      "src": "536:6:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "526:16:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 17390,
                  "nodeType": "ExpressionStatement",
                  "src": "526:16:63"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17393,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 17391,
                      "name": "_decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17374,
                      "src": "552:9:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 17392,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17380,
                      "src": "564:8:63",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "552:20:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 17394,
                  "nodeType": "ExpressionStatement",
                  "src": "552:20:63"
                }
              ]
            },
            "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\nthese values are immutable: they can only be set once during\nconstruction.",
            "id": 17396,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17376,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 17396,
                  "src": "429:18:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17375,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "429:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17378,
                  "name": "symbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 17396,
                  "src": "449:20:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17377,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "449:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17380,
                  "name": "decimals",
                  "nodeType": "VariableDeclaration",
                  "scope": 17396,
                  "src": "471:14:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 17379,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "471:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "428:58:63"
            },
            "returnParameters": {
              "id": 17382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "494:0:63"
            },
            "scope": 17421,
            "src": "416:163:63",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17403,
              "nodeType": "Block",
              "src": "696:29:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17401,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17370,
                    "src": "713:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 17400,
                  "id": 17402,
                  "nodeType": "Return",
                  "src": "706:12:63"
                }
              ]
            },
            "documentation": "@dev Returns the name of the token.",
            "id": 17404,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17397,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "657:2:63"
            },
            "returnParameters": {
              "id": 17400,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17399,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 17404,
                  "src": "681:13:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17398,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "681:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "680:15:63"
            },
            "scope": 17421,
            "src": "644:81:63",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17411,
              "nodeType": "Block",
              "src": "892:31:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17409,
                    "name": "_symbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17372,
                    "src": "909:7:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 17408,
                  "id": 17410,
                  "nodeType": "Return",
                  "src": "902:14:63"
                }
              ]
            },
            "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\nname.",
            "id": 17412,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17405,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "853:2:63"
            },
            "returnParameters": {
              "id": 17408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17407,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 17412,
                  "src": "877:13:63",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17406,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "877:6:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "876:15:63"
            },
            "scope": 17421,
            "src": "838:85:63",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17419,
              "nodeType": "Block",
              "src": "1526:33:63",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 17417,
                    "name": "_decimals",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17374,
                    "src": "1543:9:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 17416,
                  "id": 17418,
                  "nodeType": "Return",
                  "src": "1536:16:63"
                }
              ]
            },
            "documentation": "@dev Returns the number of decimals used to get its user representation.\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\n     * Tokens usually opt for a value of 18, imitating the relationship between\nEther and Wei.\n     * > Note that this information is only used for _display_ purposes: it in\nno way affects any of the arithmetic of the contract, including\n`IERC20.balanceOf` and `IERC20.transfer`.",
            "id": 17420,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17413,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1495:2:63"
            },
            "returnParameters": {
              "id": 17416,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17415,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 17420,
                  "src": "1519:5:63",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 17414,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1519:5:63",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1518:7:63"
            },
            "scope": 17421,
            "src": "1478:81:63",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 17422,
        "src": "109:1452:63"
      }
    ],
    "src": "0:1562:63"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20Detailed.sol",
      "exportedSymbols": {
        "ERC20Detailed": [
          17421
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.5",
            ".0"
          ]
        },
        "id": 17365,
        "name": "PragmaDirective",
        "src": "0:23:63"
      },
      {
        "attributes": {
          "SourceUnit": 17491,
          "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
          "file": "./IERC20.sol",
          "scope": 17422,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 17366,
        "name": "ImportDirective",
        "src": "25:22:63"
      },
      {
        "attributes": {
          "contractDependencies": [
            17490
          ],
          "contractKind": "contract",
          "documentation": "@dev Optional functions from the ERC20 standard.",
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            17421,
            17490
          ],
          "name": "ERC20Detailed",
          "scope": 17422
        },
        "children": [
          {
            "attributes": {
              "arguments": null
            },
            "children": [
              {
                "attributes": {
                  "contractScope": null,
                  "name": "IERC20",
                  "referencedDeclaration": 17490,
                  "type": "contract IERC20"
                },
                "id": 17367,
                "name": "UserDefinedTypeName",
                "src": "135:6:63"
              }
            ],
            "id": 17368,
            "name": "InheritanceSpecifier",
            "src": "135:6:63"
          },
          {
            "attributes": {
              "constant": false,
              "name": "_name",
              "scope": 17421,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string",
              "value": null,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string"
                },
                "id": 17369,
                "name": "ElementaryTypeName",
                "src": "148:6:63"
              }
            ],
            "id": 17370,
            "name": "VariableDeclaration",
            "src": "148:20:63"
          },
          {
            "attributes": {
              "constant": false,
              "name": "_symbol",
              "scope": 17421,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "string",
              "value": null,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "string",
                  "type": "string"
                },
                "id": 17371,
                "name": "ElementaryTypeName",
                "src": "174:6:63"
              }
            ],
            "id": 17372,
            "name": "VariableDeclaration",
            "src": "174:22:63"
          },
          {
            "attributes": {
              "constant": false,
              "name": "_decimals",
              "scope": 17421,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint8",
              "value": null,
              "visibility": "private"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint8",
                  "type": "uint8"
                },
                "id": 17373,
                "name": "ElementaryTypeName",
                "src": "202:5:63"
              }
            ],
            "id": 17374,
            "name": "VariableDeclaration",
            "src": "202:23:63"
          },
          {
            "attributes": {
              "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\nthese values are immutable: they can only be set once during\nconstruction.",
              "implemented": true,
              "isConstructor": true,
              "kind": "constructor",
              "modifiers": [
                null
              ],
              "name": "",
              "scope": 17421,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "name",
                      "scope": 17396,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 17375,
                        "name": "ElementaryTypeName",
                        "src": "429:6:63"
                      }
                    ],
                    "id": 17376,
                    "name": "VariableDeclaration",
                    "src": "429:18:63"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "symbol",
                      "scope": 17396,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 17377,
                        "name": "ElementaryTypeName",
                        "src": "449:6:63"
                      }
                    ],
                    "id": 17378,
                    "name": "VariableDeclaration",
                    "src": "449:20:63"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "decimals",
                      "scope": 17396,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 17379,
                        "name": "ElementaryTypeName",
                        "src": "471:5:63"
                      }
                    ],
                    "id": 17380,
                    "name": "VariableDeclaration",
                    "src": "471:14:63"
                  }
                ],
                "id": 17381,
                "name": "ParameterList",
                "src": "428:58:63"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 17382,
                "name": "ParameterList",
                "src": "494:0:63"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17370,
                              "type": "string storage ref",
                              "value": "_name"
                            },
                            "id": 17383,
                            "name": "Identifier",
                            "src": "504:5:63"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17376,
                              "type": "string memory",
                              "value": "name"
                            },
                            "id": 17384,
                            "name": "Identifier",
                            "src": "512:4:63"
                          }
                        ],
                        "id": 17385,
                        "name": "Assignment",
                        "src": "504:12:63"
                      }
                    ],
                    "id": 17386,
                    "name": "ExpressionStatement",
                    "src": "504:12:63"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "string storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17372,
                              "type": "string storage ref",
                              "value": "_symbol"
                            },
                            "id": 17387,
                            "name": "Identifier",
                            "src": "526:7:63"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17378,
                              "type": "string memory",
                              "value": "symbol"
                            },
                            "id": 17388,
                            "name": "Identifier",
                            "src": "536:6:63"
                          }
                        ],
                        "id": 17389,
                        "name": "Assignment",
                        "src": "526:16:63"
                      }
                    ],
                    "id": 17390,
                    "name": "ExpressionStatement",
                    "src": "526:16:63"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint8"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17374,
                              "type": "uint8",
                              "value": "_decimals"
                            },
                            "id": 17391,
                            "name": "Identifier",
                            "src": "552:9:63"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 17380,
                              "type": "uint8",
                              "value": "decimals"
                            },
                            "id": 17392,
                            "name": "Identifier",
                            "src": "564:8:63"
                          }
                        ],
                        "id": 17393,
                        "name": "Assignment",
                        "src": "552:20:63"
                      }
                    ],
                    "id": 17394,
                    "name": "ExpressionStatement",
                    "src": "552:20:63"
                  }
                ],
                "id": 17395,
                "name": "Block",
                "src": "494:85:63"
              }
            ],
            "id": 17396,
            "name": "FunctionDefinition",
            "src": "416:163:63"
          },
          {
            "attributes": {
              "documentation": "@dev Returns the name of the token.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "name",
              "scope": 17421,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 17397,
                "name": "ParameterList",
                "src": "657:2:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 17404,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 17398,
                        "name": "ElementaryTypeName",
                        "src": "681:6:63"
                      }
                    ],
                    "id": 17399,
                    "name": "VariableDeclaration",
                    "src": "681:13:63"
                  }
                ],
                "id": 17400,
                "name": "ParameterList",
                "src": "680:15:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 17400
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 17370,
                          "type": "string storage ref",
                          "value": "_name"
                        },
                        "id": 17401,
                        "name": "Identifier",
                        "src": "713:5:63"
                      }
                    ],
                    "id": 17402,
                    "name": "Return",
                    "src": "706:12:63"
                  }
                ],
                "id": 17403,
                "name": "Block",
                "src": "696:29:63"
              }
            ],
            "id": 17404,
            "name": "FunctionDefinition",
            "src": "644:81:63"
          },
          {
            "attributes": {
              "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\nname.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "symbol",
              "scope": 17421,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 17405,
                "name": "ParameterList",
                "src": "853:2:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 17412,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 17406,
                        "name": "ElementaryTypeName",
                        "src": "877:6:63"
                      }
                    ],
                    "id": 17407,
                    "name": "VariableDeclaration",
                    "src": "877:13:63"
                  }
                ],
                "id": 17408,
                "name": "ParameterList",
                "src": "876:15:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 17408
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 17372,
                          "type": "string storage ref",
                          "value": "_symbol"
                        },
                        "id": 17409,
                        "name": "Identifier",
                        "src": "909:7:63"
                      }
                    ],
                    "id": 17410,
                    "name": "Return",
                    "src": "902:14:63"
                  }
                ],
                "id": 17411,
                "name": "Block",
                "src": "892:31:63"
              }
            ],
            "id": 17412,
            "name": "FunctionDefinition",
            "src": "838:85:63"
          },
          {
            "attributes": {
              "documentation": "@dev Returns the number of decimals used to get its user representation.\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\n     * Tokens usually opt for a value of 18, imitating the relationship between\nEther and Wei.\n     * > Note that this information is only used for _display_ purposes: it in\nno way affects any of the arithmetic of the contract, including\n`IERC20.balanceOf` and `IERC20.transfer`.",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "decimals",
              "scope": 17421,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 17413,
                "name": "ParameterList",
                "src": "1495:2:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 17420,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 17414,
                        "name": "ElementaryTypeName",
                        "src": "1519:5:63"
                      }
                    ],
                    "id": 17415,
                    "name": "VariableDeclaration",
                    "src": "1519:5:63"
                  }
                ],
                "id": 17416,
                "name": "ParameterList",
                "src": "1518:7:63"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "functionReturnParameters": 17416
                    },
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "overloadedDeclarations": [
                            null
                          ],
                          "referencedDeclaration": 17374,
                          "type": "uint8",
                          "value": "_decimals"
                        },
                        "id": 17417,
                        "name": "Identifier",
                        "src": "1543:9:63"
                      }
                    ],
                    "id": 17418,
                    "name": "Return",
                    "src": "1536:16:63"
                  }
                ],
                "id": 17419,
                "name": "Block",
                "src": "1526:33:63"
              }
            ],
            "id": 17420,
            "name": "FunctionDefinition",
            "src": "1478:81:63"
          }
        ],
        "id": 17421,
        "name": "ContractDefinition",
        "src": "109:1452:63"
      }
    ],
    "id": 17422,
    "name": "SourceUnit",
    "src": "0:1562:63"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.17+commit.d19bba13.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.4",
  "updatedAt": "2021-11-23T11:52:09.482Z",
  "devdoc": {
    "details": "Optional functions from the ERC20 standard.",
    "methods": {
      "allowance(address,address)": {
        "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default.     * This value changes when `approve` or `transferFrom` are called."
      },
      "approve(address,uint256)": {
        "details": "Sets `amount` as the allowance of `spender` over the caller's tokens.     * Returns a boolean value indicating whether the operation succeeded.     * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729     * Emits an `Approval` event."
      },
      "balanceOf(address)": {
        "details": "Returns the amount of tokens owned by `account`."
      },
      "constructor": {
        "details": "Sets the values for `name`, `symbol`, and `decimals`. All three of these values are immutable: they can only be set once during construction."
      },
      "decimals()": {
        "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`).     * Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei.     * > Note that this information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including `IERC20.balanceOf` and `IERC20.transfer`."
      },
      "name()": {
        "details": "Returns the name of the token."
      },
      "symbol()": {
        "details": "Returns the symbol of the token, usually a shorter version of the name."
      },
      "totalSupply()": {
        "details": "Returns the amount of tokens in existence."
      },
      "transfer(address,uint256)": {
        "details": "Moves `amount` tokens from the caller's account to `recipient`.     * Returns a boolean value indicating whether the operation succeeded.     * Emits a `Transfer` event."
      },
      "transferFrom(address,address,uint256)": {
        "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance.     * Returns a boolean value indicating whether the operation succeeded.     * Emits a `Transfer` event."
      }
    }
  },
  "userdoc": {
    "methods": {}
  }
}