{
  "address": "0xE69479674F2d511cF304B9D4a063467339E67A15",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "userAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "faceHash",
          "type": "string"
        }
      ],
      "name": "UserRegistered",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "userAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "name",
          "type": "string"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "faceHash",
          "type": "string"
        }
      ],
      "name": "UserUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "getMyInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "faceHash",
              "type": "string"
            }
          ],
          "internalType": "struct UserRegistry.User",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_userAddress",
          "type": "address"
        }
      ],
      "name": "getUserInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "faceHash",
              "type": "string"
            }
          ],
          "internalType": "struct UserRegistry.User",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_faceHash",
          "type": "string"
        }
      ],
      "name": "registerUser",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_faceHash",
          "type": "string"
        }
      ],
      "name": "updateUserInfo",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "transactionHash": "0x752bb7dd151ec06f0a5919027294648a24d7180376c1de616b26fb9b9f8e304e",
  "receipt": {
    "to": null,
    "from": "0x72ac37F2B8685300a6B3781669a487eBb94a5CCd",
    "contractAddress": "0xE69479674F2d511cF304B9D4a063467339E67A15",
    "transactionIndex": 3,
    "gasUsed": "692329",
    "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
    "blockHash": "0x3dd5468a045ef13d1eb1ccc1b576a32ed32465ffaf957866f4f022e48b82633b",
    "transactionHash": "0x752bb7dd151ec06f0a5919027294648a24d7180376c1de616b26fb9b9f8e304e",
    "logs": [],
    "blockNumber": 9634122,
    "cumulativeGasUsed": "841618",
    "status": 1,
    "byzantium": true
  },
  "args": [],
  "numDeployments": 1,
  "solcInputHash": "c49dd8bc51acc3f99a54f819637cd7b5",
  "metadata": "{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"faceHash\",\"type\":\"string\"}],\"name\":\"UserRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"userAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"faceHash\",\"type\":\"string\"}],\"name\":\"UserUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getMyInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"faceHash\",\"type\":\"string\"}],\"internalType\":\"struct UserRegistry.User\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_userAddress\",\"type\":\"address\"}],\"name\":\"getUserInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"faceHash\",\"type\":\"string\"}],\"internalType\":\"struct UserRegistry.User\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_faceHash\",\"type\":\"string\"}],\"name\":\"registerUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_faceHash\",\"type\":\"string\"}],\"name\":\"updateUserInfo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/UserRegistry.sol\":\"UserRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[],\"viaIR\":true},\"sources\":{\"contracts/UserRegistry.sol\":{\"content\":\"//SPDX-License-Identifier: MIT\\npragma solidity >=0.8.0 <0.9.0;\\n\\n/*\\n * @title UserRegistry\\n * @dev Manages user registrations and facial identifiers, with added security features.\\n */\\ncontract UserRegistry {\\n\\tstruct User {\\n\\t\\tstring name;\\n\\t\\tstring faceHash; // IPFS hash of the user's face image\\n\\t}\\n\\n\\tmapping(address => User) private users; // Private for better encapsulation\\n\\n\\tevent UserRegistered(\\n\\t\\taddress indexed userAddress,\\n\\t\\tstring name,\\n\\t\\tstring faceHash\\n\\t); // Event for new user registrations\\n\\tevent UserUpdated(\\n\\t\\taddress indexed userAddress,\\n\\t\\tstring name,\\n\\t\\tstring faceHash\\n\\t); // Event for user information updates\\n\\n\\t// Modifier to ensure user exists\\n\\tmodifier userExists(address userAddress) {\\n\\t\\trequire(\\n\\t\\t\\tbytes(users[userAddress].name).length != 0,\\n\\t\\t\\t\\\"User does not exist\\\"\\n\\t\\t);\\n\\t\\t_;\\n\\t}\\n\\n\\t// Modifier to ensure user does not exist\\n\\tmodifier userDoesNotExist(address userAddress) {\\n\\t\\trequire(\\n\\t\\t\\tbytes(users[userAddress].name).length == 0,\\n\\t\\t\\t\\\"User already exists\\\"\\n\\t\\t);\\n\\t\\t_;\\n\\t}\\n\\n\\t// Modifier for validating IPFS hashes\\n\\tmodifier validIPFSHash(string memory _faceHash) {\\n\\t\\trequire(bytes(_faceHash).length == 46, \\\"Invalid IPFS hash\\\"); // Basic check for IPFS hash length\\n\\t\\t_;\\n\\t}\\n\\n\\t// Modifier for validating user's name\\n\\tmodifier validName(string memory _name) {\\n\\t\\trequire(bytes(_name).length > 0, \\\"Invalid name\\\");\\n\\t\\trequire(bytes(_name).length <= 64, \\\"Name too long\\\");\\n\\t\\t_;\\n\\t}\\n\\n\\t/*\\n\\t * @dev Registers a new user or updates an existing user's information.\\n\\t * @param _name User's name.\\n\\t * @param _faceHash IPFS hash of the user's face image.\\n\\t */\\n\\tfunction registerUser(\\n\\t\\tstring calldata _name,\\n\\t\\tstring calldata _faceHash\\n\\t)\\n\\t\\tpublic\\n\\t\\tuserDoesNotExist(msg.sender)\\n\\t\\tvalidIPFSHash(_faceHash)\\n\\t\\tvalidName(_name)\\n\\t{\\n\\t\\tusers[msg.sender] = User(_name, _faceHash);\\n\\n\\t\\temit UserRegistered(msg.sender, _name, _faceHash);\\n\\t}\\n\\n\\t/*\\n\\t * @dev Retrieves user information.\\n\\t * @param _userAddress Address of the user.\\n\\t * @return User information.\\n\\t */\\n\\tfunction getUserInfo(\\n\\t\\taddress _userAddress\\n\\t) external view userExists(_userAddress) returns (User memory) {\\n\\t\\treturn users[_userAddress];\\n\\t}\\n\\n\\t/*\\n\\t * @dev Retrieves user information for the caller.\\n\\t * @return User information.\\n\\t */\\n\\tfunction getMyInfo()\\n\\t\\texternal\\n\\t\\tview\\n\\t\\tuserExists(msg.sender)\\n\\t\\treturns (User memory)\\n\\t{\\n\\t\\treturn users[msg.sender];\\n\\t}\\n\\n\\t/*\\n\\t * @dev Updates the user's information.\\n\\t * @param _name User's name.\\n\\t * @param _faceHash IPFS hash of the user's face image.\\n\\t */\\n\\tfunction updateUserInfo(\\n\\t\\tstring calldata _name,\\n\\t\\tstring calldata _faceHash\\n\\t)\\n\\t\\texternal\\n\\t\\tuserExists(msg.sender)\\n\\t\\tvalidIPFSHash(_faceHash)\\n\\t\\tvalidName(_name)\\n\\t{\\n\\t\\tusers[msg.sender] = User(_name, _faceHash);\\n\\n\\t\\temit UserUpdated(msg.sender, _name, _faceHash);\\n\\t}\\n}\\n\",\"keccak256\":\"0x0c4e896876a4259bf99b32c8629815e5398413c5c1c4f15419837acb74948418\",\"license\":\"MIT\"}},\"version\":1}",
  "bytecode": "0x60808060405234601557610b90908161001b8239f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80631d2e4afd146104845780634b3fcab51461013c5780636386c1c7146100d157637daa10ce1461004857600080fd5b346100cc5760003660031901126100cc57610061610a9c565b5033600052600060205261008361007c60406000205461089c565b1515610a5a565b3360005260006020526100c860406000206100b76001604051926100a6846108d6565b6100af81610ab5565b845201610ab5565b602082015260405191829182610864565b0390f35b600080fd5b346100cc5760203660031901126100cc576004356001600160a01b038116908190036100cc576100ff610a9c565b5080600052600060205261011a61007c60406000205461089c565b60005260006020526100c860406000206100b76001604051926100a6846108d6565b346100cc5761014a366107d9565b929133600052600060205261016661007c60406000205461089c565b61017d602e610176368786610914565b511461095b565b6101a1604061018d368487610914565b6101998151151561099b565b5111156109d6565b604051936101ae856108d6565b6101b9368386610914565b85526101c6368285610914565b6020860152336000526000602052604060002094805180519067ffffffffffffffff82116103aa5781906101fa895461089c565b601f8111610431575b50602090601f83116001146103cb576000926103c0575b50508160011b916000199060031b1c19161786555b6020015180519560019081019167ffffffffffffffff88116103aa57610255835461089c565b601f811161035f575b50602090601f89116001146102d25797806102c295949381937fe5d18d6612696bff7df1db8015eac613241613297fa2ba2783993e4fd0e76f3d9a9b6000946102c7575b50501b916000199060031b1c19161790555b604051938493339785610a33565b0390a2005b015192508b806102a2565b9790601f198216988460005260206000209960005b8181106103495750917fe5d18d6612696bff7df1db8015eac613241613297fa2ba2783993e4fd0e76f3d999a91846102c2989796959410610330575b505050811b0190556102b4565b015160001960f88460031b161c19169055898080610323565b838301518c559a85019a602093840193016102e7565b836000526020600020601f8a0160051c81019160208b106103a0575b601f0160051c019083905b82811061039457505061025e565b60008155018390610386565b909150819061037b565b634e487b7160e01b600052604160045260246000fd5b01519050888061021a565b60008a8152602081209350601f198516905b8181106104195750908460019594939210610400575b505050811b01865561022f565b015160001960f88460031b161c191690558880806103f3565b929360206001819287860151815501950193016103dd565b909150886000526020600020601f840160051c8101916020851061047a575b90601f859493920160051c01905b81811061046b5750610203565b6000815584935060010161045e565b9091508190610450565b346100cc57610492366107d9565b92913360005260006020526104ab60406000205461089c565b610770576104bf602e610176368786610914565b6104cf604061018d368487610914565b604051936104dc856108d6565b6104e7368386610914565b85526104f4368285610914565b6020860152336000526000602052604060002094805180519067ffffffffffffffff82116103aa578190610528895461089c565b601f811161071d575b50602090601f83116001146106b7576000926106ac575b50508160011b916000199060031b1c19161786555b6020015180519560019081019167ffffffffffffffff88116103aa57610583835461089c565b601f8111610661575b50602090601f89116001146105ee5797806102c295949381937f92822564bab8864c3a47b34e8d23fbce5c46234eb5da261f94087b995ac0f33b9a9b6000946102c75750501b916000199060031b1c1916179055604051938493339785610a33565b9790601f198216988460005260206000209960005b81811061064b5750917f92822564bab8864c3a47b34e8d23fbce5c46234eb5da261f94087b995ac0f33b999a91846102c298979695941061033057505050811b0190556102b4565b838301518c559a85019a60209384019301610603565b836000526020600020601f8a0160051c81019160208b106106a2575b601f0160051c019083905b82811061069657505061058c565b60008155018390610688565b909150819061067d565b015190508880610548565b60008a8152602081209350601f198516905b81811061070557509084600195949392106106ec575b505050811b01865561055d565b015160001960f88460031b161c191690558880806106df565b929360206001819287860151815501950193016106c9565b909150886000526020600020601f840160051c81019160208510610766575b90601f859493920160051c01905b8181106107575750610531565b6000815584935060010161074a565b909150819061073c565b60405162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792065786973747360681b6044820152606490fd5b9181601f840112156100cc5782359167ffffffffffffffff83116100cc57602083818601950101116100cc57565b60406003198201126100cc5767ffffffffffffffff916004358381116100cc5782610806916004016107ab565b939093926024359182116100cc57610820916004016107ab565b9091565b919082519283825260005b848110610850575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161082f565b906108999160208152602061088483516040838501526060840190610824565b920151906040601f1982850301910152610824565b90565b90600182811c921680156108cc575b60208310146108b657565b634e487b7160e01b600052602260045260246000fd5b91607f16916108ab565b6040810190811067ffffffffffffffff8211176103aa57604052565b90601f8019910116810190811067ffffffffffffffff8211176103aa57604052565b92919267ffffffffffffffff82116103aa576040519161093e601f8201601f1916602001846108f2565b8294818452818301116100cc578281602093846000960137010152565b1561096257565b60405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c84092a08ca640d0c2e6d607b1b6044820152606490fd5b156109a257565b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b6044820152606490fd5b156109dd57565b60405162461bcd60e51b815260206004820152600d60248201526c4e616d6520746f6f206c6f6e6760981b6044820152606490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b9290610a4c906108999593604086526040860191610a12565b926020818503910152610a12565b15610a6157565b60405162461bcd60e51b8152602060048201526013602482015272155cd95c88191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606490fd5b60405190610aa9826108d6565b60606020838281520152565b90604051918260008254610ac88161089c565b90818452602094600191600181169081600014610b385750600114610af9575b505050610af7925003836108f2565b565b600090815285812095935091905b818310610b20575050610af79350820101388080610ae8565b85548884018501529485019487945091830191610b07565b92505050610af794925060ff191682840152151560051b820101388080610ae856fea264697066735822122036a878b079389c694a4ec134b909eb2ffd85daa9486530ee4ce7302d7489397a64736f6c63430008190033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c80631d2e4afd146104845780634b3fcab51461013c5780636386c1c7146100d157637daa10ce1461004857600080fd5b346100cc5760003660031901126100cc57610061610a9c565b5033600052600060205261008361007c60406000205461089c565b1515610a5a565b3360005260006020526100c860406000206100b76001604051926100a6846108d6565b6100af81610ab5565b845201610ab5565b602082015260405191829182610864565b0390f35b600080fd5b346100cc5760203660031901126100cc576004356001600160a01b038116908190036100cc576100ff610a9c565b5080600052600060205261011a61007c60406000205461089c565b60005260006020526100c860406000206100b76001604051926100a6846108d6565b346100cc5761014a366107d9565b929133600052600060205261016661007c60406000205461089c565b61017d602e610176368786610914565b511461095b565b6101a1604061018d368487610914565b6101998151151561099b565b5111156109d6565b604051936101ae856108d6565b6101b9368386610914565b85526101c6368285610914565b6020860152336000526000602052604060002094805180519067ffffffffffffffff82116103aa5781906101fa895461089c565b601f8111610431575b50602090601f83116001146103cb576000926103c0575b50508160011b916000199060031b1c19161786555b6020015180519560019081019167ffffffffffffffff88116103aa57610255835461089c565b601f811161035f575b50602090601f89116001146102d25797806102c295949381937fe5d18d6612696bff7df1db8015eac613241613297fa2ba2783993e4fd0e76f3d9a9b6000946102c7575b50501b916000199060031b1c19161790555b604051938493339785610a33565b0390a2005b015192508b806102a2565b9790601f198216988460005260206000209960005b8181106103495750917fe5d18d6612696bff7df1db8015eac613241613297fa2ba2783993e4fd0e76f3d999a91846102c2989796959410610330575b505050811b0190556102b4565b015160001960f88460031b161c19169055898080610323565b838301518c559a85019a602093840193016102e7565b836000526020600020601f8a0160051c81019160208b106103a0575b601f0160051c019083905b82811061039457505061025e565b60008155018390610386565b909150819061037b565b634e487b7160e01b600052604160045260246000fd5b01519050888061021a565b60008a8152602081209350601f198516905b8181106104195750908460019594939210610400575b505050811b01865561022f565b015160001960f88460031b161c191690558880806103f3565b929360206001819287860151815501950193016103dd565b909150886000526020600020601f840160051c8101916020851061047a575b90601f859493920160051c01905b81811061046b5750610203565b6000815584935060010161045e565b9091508190610450565b346100cc57610492366107d9565b92913360005260006020526104ab60406000205461089c565b610770576104bf602e610176368786610914565b6104cf604061018d368487610914565b604051936104dc856108d6565b6104e7368386610914565b85526104f4368285610914565b6020860152336000526000602052604060002094805180519067ffffffffffffffff82116103aa578190610528895461089c565b601f811161071d575b50602090601f83116001146106b7576000926106ac575b50508160011b916000199060031b1c19161786555b6020015180519560019081019167ffffffffffffffff88116103aa57610583835461089c565b601f8111610661575b50602090601f89116001146105ee5797806102c295949381937f92822564bab8864c3a47b34e8d23fbce5c46234eb5da261f94087b995ac0f33b9a9b6000946102c75750501b916000199060031b1c1916179055604051938493339785610a33565b9790601f198216988460005260206000209960005b81811061064b5750917f92822564bab8864c3a47b34e8d23fbce5c46234eb5da261f94087b995ac0f33b999a91846102c298979695941061033057505050811b0190556102b4565b838301518c559a85019a60209384019301610603565b836000526020600020601f8a0160051c81019160208b106106a2575b601f0160051c019083905b82811061069657505061058c565b60008155018390610688565b909150819061067d565b015190508880610548565b60008a8152602081209350601f198516905b81811061070557509084600195949392106106ec575b505050811b01865561055d565b015160001960f88460031b161c191690558880806106df565b929360206001819287860151815501950193016106c9565b909150886000526020600020601f840160051c81019160208510610766575b90601f859493920160051c01905b8181106107575750610531565b6000815584935060010161074a565b909150819061073c565b60405162461bcd60e51b81526020600482015260136024820152725573657220616c72656164792065786973747360681b6044820152606490fd5b9181601f840112156100cc5782359167ffffffffffffffff83116100cc57602083818601950101116100cc57565b60406003198201126100cc5767ffffffffffffffff916004358381116100cc5782610806916004016107ab565b939093926024359182116100cc57610820916004016107ab565b9091565b919082519283825260005b848110610850575050826000602080949584010152601f8019910116010190565b60208183018101518483018201520161082f565b906108999160208152602061088483516040838501526060840190610824565b920151906040601f1982850301910152610824565b90565b90600182811c921680156108cc575b60208310146108b657565b634e487b7160e01b600052602260045260246000fd5b91607f16916108ab565b6040810190811067ffffffffffffffff8211176103aa57604052565b90601f8019910116810190811067ffffffffffffffff8211176103aa57604052565b92919267ffffffffffffffff82116103aa576040519161093e601f8201601f1916602001846108f2565b8294818452818301116100cc578281602093846000960137010152565b1561096257565b60405162461bcd60e51b8152602060048201526011602482015270092dcecc2d8d2c84092a08ca640d0c2e6d607b1b6044820152606490fd5b156109a257565b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206e616d6560a01b6044820152606490fd5b156109dd57565b60405162461bcd60e51b815260206004820152600d60248201526c4e616d6520746f6f206c6f6e6760981b6044820152606490fd5b908060209392818452848401376000828201840152601f01601f1916010190565b9290610a4c906108999593604086526040860191610a12565b926020818503910152610a12565b15610a6157565b60405162461bcd60e51b8152602060048201526013602482015272155cd95c88191bd95cc81b9bdd08195e1a5cdd606a1b6044820152606490fd5b60405190610aa9826108d6565b60606020838281520152565b90604051918260008254610ac88161089c565b90818452602094600191600181169081600014610b385750600114610af9575b505050610af7925003836108f2565b565b600090815285812095935091905b818310610b20575050610af79350820101388080610ae8565b85548884018501529485019487945091830191610b07565b92505050610af794925060ff191682840152151560051b820101388080610ae856fea264697066735822122036a878b079389c694a4ec134b909eb2ffd85daa9486530ee4ce7302d7489397a64736f6c63430008190033",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  },
  "storageLayout": {
    "storage": [
      {
        "astId": 363,
        "contract": "contracts/UserRegistry.sol:UserRegistry",
        "label": "users",
        "offset": 0,
        "slot": "0",
        "type": "t_mapping(t_address,t_struct(User)358_storage)"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_mapping(t_address,t_struct(User)358_storage)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => struct UserRegistry.User)",
        "numberOfBytes": "32",
        "value": "t_struct(User)358_storage"
      },
      "t_string_storage": {
        "encoding": "bytes",
        "label": "string",
        "numberOfBytes": "32"
      },
      "t_struct(User)358_storage": {
        "encoding": "inplace",
        "label": "struct UserRegistry.User",
        "members": [
          {
            "astId": 355,
            "contract": "contracts/UserRegistry.sol:UserRegistry",
            "label": "name",
            "offset": 0,
            "slot": "0",
            "type": "t_string_storage"
          },
          {
            "astId": 357,
            "contract": "contracts/UserRegistry.sol:UserRegistry",
            "label": "faceHash",
            "offset": 0,
            "slot": "1",
            "type": "t_string_storage"
          }
        ],
        "numberOfBytes": "64"
      }
    }
  }
}