{
  "contractName": "Metadata",
  "abi": [
    {
      "inputs": [
        {
          "name": "name",
          "type": "string"
        },
        {
          "name": "issuer",
          "type": "string"
        },
        {
          "name": "decimals",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "issuer",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_interfaceId",
          "type": "bytes4"
        }
      ],
      "name": "supportsInterface",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.0+commit.1d4f565a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"issuer\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"issuer\",\"type\":\"string\"},{\"name\":\"decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/100x/Evrynetlabs/warp-contract/contracts/Metadata.sol\":\"Metadata\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/100x/Evrynetlabs/warp-contract/contracts/IMetadata.sol\":{\"keccak256\":\"0xc8def8625e9e47bcb14c84cf3413ff505de7befe9f6f553eec623f0318a91ec9\",\"urls\":[\"bzzr://aa4ab5607ca5f7d02d89e5dda48e819e05b3425d2af389d220514acee04ca7fd\"]},\"/Users/100x/Evrynetlabs/warp-contract/contracts/Metadata.sol\":{\"keccak256\":\"0xcece9f02355b9542ca20bf8dc75a5c4caa7da537596e6ffdc21ecc8e8266608c\",\"urls\":[\"bzzr://c10e4871b1fc49087b86fcd86cb5d0f48090e6c58db52056565e2826d08bd695\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0x661553e43d7c4fbb2de504e5999fd5c104d367488350ed5bf023031bd1ba5ac5\",\"urls\":[\"bzzr://fc2ba15143ce3a00268ecd15fc98eb2469b18bfe27a64bbab0ac6446f161c739\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506040516104fa3803806104fa8339810180604052606081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8201602081018481111561005e57600080fd5b815164010000000081118282018710171561007857600080fd5b5050929190602001805164010000000081111561009457600080fd5b820160208101848111156100a757600080fd5b81516401000000008111828201871017156100c157600080fd5b5050602091820151855191945092506100e09160009190860190610111565b5081516100f4906001906020850190610111565b506002805460ff191660ff92909216919091179055506101ac9050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061015257805160ff191683800117855561017f565b8280016001018555821561017f579182015b8281111561017f578251825591602001919060010190610164565b5061018b92915061018f565b5090565b6101a991905b8082111561018b5760008155600101610195565b90565b61033f806101bb6000396000f3fe6080604052600436106100455760003560e01c63ffffffff16806301ffc9a71461004a57806306fdde03146100a75780631d14384814610131578063313ce56714610146575b600080fd5b34801561005657600080fd5b506100936004803603602081101561006d57600080fd5b50357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916610171565b604080519115158252519081900360200190f35b3480156100b357600080fd5b506100bc610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f65781810151838201526020016100de565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013d57600080fd5b506100bc6102aa565b34801561015257600080fd5b5061015b61030a565b6040805160ff9092168252519081900360200190f35b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1982167f01ffc9a70000000000000000000000000000000000000000000000000000000014806101fe57507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1982167f2ad5032c00000000000000000000000000000000000000000000000000000000145b1561020b5750600161020f565b5060005b919050565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156102a05780601f10610275576101008083540402835291602001916102a0565b820191906000526020600020905b81548152906001019060200180831161028357829003601f168201915b5050505050905090565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156102a05780601f10610275576101008083540402835291602001916102a0565b60025460ff169056fea165627a7a723058200bc7c69b13fa2430d037b75fbfdceb9ec6ffc4b1a8cdc36ed4a6b26aa17767670029",
  "deployedBytecode": "0x6080604052600436106100455760003560e01c63ffffffff16806301ffc9a71461004a57806306fdde03146100a75780631d14384814610131578063313ce56714610146575b600080fd5b34801561005657600080fd5b506100936004803603602081101561006d57600080fd5b50357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916610171565b604080519115158252519081900360200190f35b3480156100b357600080fd5b506100bc610214565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100f65781810151838201526020016100de565b50505050905090810190601f1680156101235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561013d57600080fd5b506100bc6102aa565b34801561015257600080fd5b5061015b61030a565b6040805160ff9092168252519081900360200190f35b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1982167f01ffc9a70000000000000000000000000000000000000000000000000000000014806101fe57507bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1982167f2ad5032c00000000000000000000000000000000000000000000000000000000145b1561020b5750600161020f565b5060005b919050565b60008054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156102a05780601f10610275576101008083540402835291602001916102a0565b820191906000526020600020905b81548152906001019060200180831161028357829003601f168201915b5050505050905090565b60018054604080516020601f600260001961010087891615020190951694909404938401819004810282018101909252828152606093909290918301828280156102a05780601f10610275576101008083540402835291602001916102a0565b60025460ff169056fea165627a7a723058200bc7c69b13fa2430d037b75fbfdceb9ec6ffc4b1a8cdc36ed4a6b26aa17767670029",
  "sourceMap": "113:994:3:-;;;384:162;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:162:3;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;384:162:3;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;384:162:3;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;384:162:3;;;;;471:12;;384:162;;-1:-1:-1;384:162:3;-1:-1:-1;471:12:3;;:5;;:12;;;;;:::i;:::-;-1:-1:-1;493:16:3;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;519:9:3;:20;;-1:-1:-1;;519:20:3;;;;;;;;;;;;-1:-1:-1;113:994:3;;-1:-1:-1;113:994:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;113:994:3;;;-1:-1:-1;113:994:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "113:994:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;823:282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;823:282:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;823:282:3;-1:-1:-1;;823:282:3;;;;;;;;;;;;;;;;;;;;;552:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;552:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;552:83:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;641:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;641:87:3;;;;734:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;734:83:3;;;;;;;;;;;;;;;;;;;;;;;823:282;894:4;-1:-1:-1;;927:42:3;;943:26;927:42;;:102;;-1:-1:-1;;;985:44:3;;1001:28;985:44;927:102;910:166;;;-1:-1:-1;1061:4:3;1054:11;;910:166;-1:-1:-1;1093:5:3;823:282;;;;:::o;552:83::-;623:5;616:12;;;;;;;;-1:-1:-1;;616:12:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;591:13;;616:12;;623:5;;616:12;;623:5;616:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;552:83;:::o;641:87::-;714:7;707:14;;;;;;;;-1:-1:-1;;707:14:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;682:13;;707:14;;714:7;;707:14;;714:7;707:14;;;;;;;;;;;;;;;;;;;;;;;;734:83;801:9;;;;734:83;:::o",
  "source": "pragma solidity ^0.5.0;\n\nimport \"./IMetadata.sol\";\nimport \"@openzeppelin/contracts/introspection/IERC165.sol\";\n\n\ncontract Metadata is IMetadata, IERC165 {\n    string private _name;\n    string private _issuer;\n    uint8 private _decimals;\n\n    bytes4 private constant INTERFACE_SIGNATURE_ERC165 = 0x01ffc9a7;\n    bytes4 private constant INTERFACE_SIGNATURE_METADATA = 0x2ad5032c;\n\n    constructor(string memory name, string memory issuer, uint8 decimals) public {\n        _name = name;\n        _issuer = issuer;\n        _decimals = decimals;\n    }\n\n    function name() external view returns (string memory) {\n        return _name;\n    }\n\n    function issuer() external view returns (string memory) {\n        return _issuer;\n    }\n\n    function decimals() external view returns (uint8) {\n        return _decimals;\n    }\n\n    function supportsInterface(bytes4 _interfaceId) external view returns (bool) {\n        if (\n            _interfaceId == INTERFACE_SIGNATURE_ERC165 ||\n            _interfaceId == INTERFACE_SIGNATURE_METADATA\n        ) {\n            return true;\n        }\n\n        return false;\n    }\n}\n",
  "sourcePath": "/Users/100x/Evrynetlabs/warp-contract/contracts/Metadata.sol",
  "ast": {
    "absolutePath": "/Users/100x/Evrynetlabs/warp-contract/contracts/Metadata.sol",
    "exportedSymbols": {
      "Metadata": [
        307
      ]
    },
    "id": 308,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 221,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:3"
      },
      {
        "absolutePath": "/Users/100x/Evrynetlabs/warp-contract/contracts/IMetadata.sol",
        "file": "./IMetadata.sol",
        "id": 222,
        "nodeType": "ImportDirective",
        "scope": 308,
        "sourceUnit": 220,
        "src": "25:25:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol",
        "file": "@openzeppelin/contracts/introspection/IERC165.sol",
        "id": 223,
        "nodeType": "ImportDirective",
        "scope": 308,
        "sourceUnit": 2828,
        "src": "51:59:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 224,
              "name": "IMetadata",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 219,
              "src": "134:9:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IMetadata_$219",
                "typeString": "contract IMetadata"
              }
            },
            "id": 225,
            "nodeType": "InheritanceSpecifier",
            "src": "134:9:3"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 226,
              "name": "IERC165",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2827,
              "src": "145:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC165_$2827",
                "typeString": "contract IERC165"
              }
            },
            "id": 227,
            "nodeType": "InheritanceSpecifier",
            "src": "145:7:3"
          }
        ],
        "contractDependencies": [
          219,
          2827
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 307,
        "linearizedBaseContracts": [
          307,
          2827,
          219
        ],
        "name": "Metadata",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 229,
            "name": "_name",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "159:20:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 228,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "159:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 231,
            "name": "_issuer",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "185:22:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 230,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "185:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 233,
            "name": "_decimals",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "213:23:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 232,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "213:5:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 236,
            "name": "INTERFACE_SIGNATURE_ERC165",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "243:63:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 234,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "243:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783031666663396137",
              "id": 235,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "296:10:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_33540519_by_1",
                "typeString": "int_const 33540519"
              },
              "value": "0x01ffc9a7"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 239,
            "name": "INTERFACE_SIGNATURE_METADATA",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "312:65:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 237,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "312:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783261643530333263",
              "id": 238,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "367:10:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_718603052_by_1",
                "typeString": "int_const 718603052"
              },
              "value": "0x2ad5032c"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "461:85:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 248,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 229,
                      "src": "471:5:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 249,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 241,
                      "src": "479:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "471:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 251,
                  "nodeType": "ExpressionStatement",
                  "src": "471:12:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 254,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 252,
                      "name": "_issuer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 231,
                      "src": "493:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 253,
                      "name": "issuer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 243,
                      "src": "503:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "493:16:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 255,
                  "nodeType": "ExpressionStatement",
                  "src": "493:16:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 256,
                      "name": "_decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 233,
                      "src": "519:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 257,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 245,
                      "src": "531:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "519:20:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "519:20:3"
                }
              ]
            },
            "documentation": null,
            "id": 261,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 241,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "396:18:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 240,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "396:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 243,
                  "name": "issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "416:20:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 242,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "416:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 245,
                  "name": "decimals",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "438:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 244,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "438:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "395:58:3"
            },
            "returnParameters": {
              "id": 247,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "461:0:3"
            },
            "scope": 307,
            "src": "384:162:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 268,
              "nodeType": "Block",
              "src": "606:29:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 266,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 229,
                    "src": "623:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 265,
                  "id": 267,
                  "nodeType": "Return",
                  "src": "616:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 269,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "565:2:3"
            },
            "returnParameters": {
              "id": 265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 264,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 269,
                  "src": "591:13:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 263,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "591:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "590:15:3"
            },
            "scope": 307,
            "src": "552:83:3",
            "stateMutability": "view",
            "superFunction": 208,
            "visibility": "external"
          },
          {
            "body": {
              "id": 276,
              "nodeType": "Block",
              "src": "697:31:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 274,
                    "name": "_issuer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 231,
                    "src": "714:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 273,
                  "id": 275,
                  "nodeType": "Return",
                  "src": "707:14:3"
                }
              ]
            },
            "documentation": null,
            "id": 277,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "issuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 270,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "656:2:3"
            },
            "returnParameters": {
              "id": 273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 272,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 277,
                  "src": "682:13:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 271,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "681:15:3"
            },
            "scope": 307,
            "src": "641:87:3",
            "stateMutability": "view",
            "superFunction": 213,
            "visibility": "external"
          },
          {
            "body": {
              "id": 284,
              "nodeType": "Block",
              "src": "784:33:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 282,
                    "name": "_decimals",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 233,
                    "src": "801:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 281,
                  "id": 283,
                  "nodeType": "Return",
                  "src": "794:16:3"
                }
              ]
            },
            "documentation": null,
            "id": 285,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 278,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "751:2:3"
            },
            "returnParameters": {
              "id": 281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 280,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "777:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 279,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "777:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "776:7:3"
            },
            "scope": 307,
            "src": "734:83:3",
            "stateMutability": "view",
            "superFunction": 218,
            "visibility": "external"
          },
          {
            "body": {
              "id": 305,
              "nodeType": "Block",
              "src": "900:205:3",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 292,
                        "name": "_interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "927:12:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 293,
                        "name": "INTERFACE_SIGNATURE_ERC165",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "943:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "927:42:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 297,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 295,
                        "name": "_interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "985:12:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 296,
                        "name": "INTERFACE_SIGNATURE_METADATA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 239,
                        "src": "1001:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "985:44:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "927:102:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 302,
                  "nodeType": "IfStatement",
                  "src": "910:166:3",
                  "trueBody": {
                    "id": 301,
                    "nodeType": "Block",
                    "src": "1040:36:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1061:4:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 291,
                        "id": 300,
                        "nodeType": "Return",
                        "src": "1054:11:3"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1093:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 291,
                  "id": 304,
                  "nodeType": "Return",
                  "src": "1086:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 306,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 287,
                  "name": "_interfaceId",
                  "nodeType": "VariableDeclaration",
                  "scope": 306,
                  "src": "850:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 286,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "850:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:21:3"
            },
            "returnParameters": {
              "id": 291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 290,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 306,
                  "src": "894:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 289,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "894:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "893:6:3"
            },
            "scope": 307,
            "src": "823:282:3",
            "stateMutability": "view",
            "superFunction": 2826,
            "visibility": "external"
          }
        ],
        "scope": 308,
        "src": "113:994:3"
      }
    ],
    "src": "0:1108:3"
  },
  "legacyAST": {
    "absolutePath": "/Users/100x/Evrynetlabs/warp-contract/contracts/Metadata.sol",
    "exportedSymbols": {
      "Metadata": [
        307
      ]
    },
    "id": 308,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 221,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:3"
      },
      {
        "absolutePath": "/Users/100x/Evrynetlabs/warp-contract/contracts/IMetadata.sol",
        "file": "./IMetadata.sol",
        "id": 222,
        "nodeType": "ImportDirective",
        "scope": 308,
        "sourceUnit": 220,
        "src": "25:25:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol",
        "file": "@openzeppelin/contracts/introspection/IERC165.sol",
        "id": 223,
        "nodeType": "ImportDirective",
        "scope": 308,
        "sourceUnit": 2828,
        "src": "51:59:3",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 224,
              "name": "IMetadata",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 219,
              "src": "134:9:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IMetadata_$219",
                "typeString": "contract IMetadata"
              }
            },
            "id": 225,
            "nodeType": "InheritanceSpecifier",
            "src": "134:9:3"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 226,
              "name": "IERC165",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 2827,
              "src": "145:7:3",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC165_$2827",
                "typeString": "contract IERC165"
              }
            },
            "id": 227,
            "nodeType": "InheritanceSpecifier",
            "src": "145:7:3"
          }
        ],
        "contractDependencies": [
          219,
          2827
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 307,
        "linearizedBaseContracts": [
          307,
          2827,
          219
        ],
        "name": "Metadata",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 229,
            "name": "_name",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "159:20:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 228,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "159:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 231,
            "name": "_issuer",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "185:22:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 230,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "185:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 233,
            "name": "_decimals",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "213:23:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint8",
              "typeString": "uint8"
            },
            "typeName": {
              "id": 232,
              "name": "uint8",
              "nodeType": "ElementaryTypeName",
              "src": "213:5:3",
              "typeDescriptions": {
                "typeIdentifier": "t_uint8",
                "typeString": "uint8"
              }
            },
            "value": null,
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 236,
            "name": "INTERFACE_SIGNATURE_ERC165",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "243:63:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 234,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "243:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783031666663396137",
              "id": 235,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "296:10:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_33540519_by_1",
                "typeString": "int_const 33540519"
              },
              "value": "0x01ffc9a7"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 239,
            "name": "INTERFACE_SIGNATURE_METADATA",
            "nodeType": "VariableDeclaration",
            "scope": 307,
            "src": "312:65:3",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 237,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "312:6:3",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783261643530333263",
              "id": 238,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "367:10:3",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_718603052_by_1",
                "typeString": "int_const 718603052"
              },
              "value": "0x2ad5032c"
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "461:85:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 250,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 248,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 229,
                      "src": "471:5:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 249,
                      "name": "name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 241,
                      "src": "479:4:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "471:12:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 251,
                  "nodeType": "ExpressionStatement",
                  "src": "471:12:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 254,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 252,
                      "name": "_issuer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 231,
                      "src": "493:7:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 253,
                      "name": "issuer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 243,
                      "src": "503:6:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "493:16:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 255,
                  "nodeType": "ExpressionStatement",
                  "src": "493:16:3"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 256,
                      "name": "_decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 233,
                      "src": "519:9:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 257,
                      "name": "decimals",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 245,
                      "src": "531:8:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint8",
                        "typeString": "uint8"
                      }
                    },
                    "src": "519:20:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "519:20:3"
                }
              ]
            },
            "documentation": null,
            "id": 261,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 246,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 241,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "396:18:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 240,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "396:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 243,
                  "name": "issuer",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "416:20:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 242,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "416:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 245,
                  "name": "decimals",
                  "nodeType": "VariableDeclaration",
                  "scope": 261,
                  "src": "438:14:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 244,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "438:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "395:58:3"
            },
            "returnParameters": {
              "id": 247,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "461:0:3"
            },
            "scope": 307,
            "src": "384:162:3",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 268,
              "nodeType": "Block",
              "src": "606:29:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 266,
                    "name": "_name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 229,
                    "src": "623:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 265,
                  "id": 267,
                  "nodeType": "Return",
                  "src": "616:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 269,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 262,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "565:2:3"
            },
            "returnParameters": {
              "id": 265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 264,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 269,
                  "src": "591:13:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 263,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "591:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "590:15:3"
            },
            "scope": 307,
            "src": "552:83:3",
            "stateMutability": "view",
            "superFunction": 208,
            "visibility": "external"
          },
          {
            "body": {
              "id": 276,
              "nodeType": "Block",
              "src": "697:31:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 274,
                    "name": "_issuer",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 231,
                    "src": "714:7:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 273,
                  "id": 275,
                  "nodeType": "Return",
                  "src": "707:14:3"
                }
              ]
            },
            "documentation": null,
            "id": 277,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "issuer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 270,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "656:2:3"
            },
            "returnParameters": {
              "id": 273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 272,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 277,
                  "src": "682:13:3",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 271,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "682:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "681:15:3"
            },
            "scope": 307,
            "src": "641:87:3",
            "stateMutability": "view",
            "superFunction": 213,
            "visibility": "external"
          },
          {
            "body": {
              "id": 284,
              "nodeType": "Block",
              "src": "784:33:3",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 282,
                    "name": "_decimals",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 233,
                    "src": "801:9:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "functionReturnParameters": 281,
                  "id": 283,
                  "nodeType": "Return",
                  "src": "794:16:3"
                }
              ]
            },
            "documentation": null,
            "id": 285,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 278,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "751:2:3"
            },
            "returnParameters": {
              "id": 281,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 280,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 285,
                  "src": "777:5:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 279,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "777:5:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "776:7:3"
            },
            "scope": 307,
            "src": "734:83:3",
            "stateMutability": "view",
            "superFunction": 218,
            "visibility": "external"
          },
          {
            "body": {
              "id": 305,
              "nodeType": "Block",
              "src": "900:205:3",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 298,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 292,
                        "name": "_interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "927:12:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 293,
                        "name": "INTERFACE_SIGNATURE_ERC165",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 236,
                        "src": "943:26:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "927:42:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 297,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 295,
                        "name": "_interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 287,
                        "src": "985:12:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 296,
                        "name": "INTERFACE_SIGNATURE_METADATA",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 239,
                        "src": "1001:28:3",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "985:44:3",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "927:102:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 302,
                  "nodeType": "IfStatement",
                  "src": "910:166:3",
                  "trueBody": {
                    "id": 301,
                    "nodeType": "Block",
                    "src": "1040:36:3",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "74727565",
                          "id": 299,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "bool",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1061:4:3",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "value": "true"
                        },
                        "functionReturnParameters": 291,
                        "id": 300,
                        "nodeType": "Return",
                        "src": "1054:11:3"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 303,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "1093:5:3",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 291,
                  "id": 304,
                  "nodeType": "Return",
                  "src": "1086:12:3"
                }
              ]
            },
            "documentation": null,
            "id": 306,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 288,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 287,
                  "name": "_interfaceId",
                  "nodeType": "VariableDeclaration",
                  "scope": 306,
                  "src": "850:19:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 286,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "850:6:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "849:21:3"
            },
            "returnParameters": {
              "id": 291,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 290,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 306,
                  "src": "894:4:3",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 289,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "894:4:3",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "893:6:3"
            },
            "scope": 307,
            "src": "823:282:3",
            "stateMutability": "view",
            "superFunction": 2826,
            "visibility": "external"
          }
        ],
        "scope": 308,
        "src": "113:994:3"
      }
    ],
    "src": "0:1108:3"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.19",
  "updatedAt": "2020-04-08T07:30:09.344Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}