{
  "contractName": "AuthereumENSResolver",
  "abi": [
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "isOwner",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "AddrChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "node",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "name": "name",
          "type": "string"
        }
      ],
      "name": "NameChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_node",
          "type": "bytes32"
        },
        {
          "name": "_addr",
          "type": "address"
        }
      ],
      "name": "setAddr",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_node",
          "type": "bytes32"
        },
        {
          "name": "_name",
          "type": "string"
        }
      ],
      "name": "setName",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_node",
          "type": "bytes32"
        }
      ],
      "name": "addr",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_node",
          "type": "bytes32"
        }
      ],
      "name": "name",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "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.8+commit.23d335f2\"},\"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\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"addr\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_node\",\"type\":\"bytes32\"}],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_node\",\"type\":\"bytes32\"},{\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"setName\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_node\",\"type\":\"bytes32\"},{\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"setAddr\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AddrChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"node\",\"type\":\"bytes32\"},{\"indexed\":false,\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NameChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Authereum implementation of a Resolver.\",\"methods\":{\"addr(bytes32)\":{\"details\":\"Returns the name associated with an ENS node, for reverse records\",\"params\":{\"_node\":\"The ENS node to query\"},\"return\":\"The associated address\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"name(bytes32)\":{\"details\":\"Gets the name associated to an ENS node\",\"params\":{\"_node\":\"The ENS node to query\"},\"return\":\"The associated name\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"setAddr(bytes32,address)\":{\"details\":\"Sets the address associated with an ENS node\",\"params\":{\"_addr\":\"The address to set\",\"_node\":\"The node to update\"}},\"setName(bytes32,string)\":{\"details\":\"Sets the name associated with an ENS node, for reverse records\",\"params\":{\"_name\":\"The name to set\",\"_node\":\"The node to update\"}},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if the resolver implements the interface specified by the provided hash\",\"params\":{\"_interfaceID\":\"The ID of the interface to check for\"},\"return\":\"True if the contract implements the requested interface\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"AuthereumENSResolver\"},\"userdoc\":{\"methods\":{\"addr(bytes32)\":{\"notice\":\"Defined in EIP181.\"},\"setAddr(bytes32,address)\":{\"notice\":\"May only be called by the owner of that node in the ENS registry\"},\"setName(bytes32,string)\":{\"notice\":\"May only be called by the owner of that node in the ENS registry\"}}}},\"settings\":{\"compilationTarget\":{\"/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/AuthereumENSResolver.sol\":\"AuthereumENSResolver\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/AuthereumENSResolver.sol\":{\"keccak256\":\"0x2a1a08eb916970ea185d7ff7ff50b3d48a702a536a75bd9f1adeb8f5aac83ab5\",\"urls\":[\"bzzr://f2a5494705257b68c699267eafddc8cd2591cfdae0c1f814668c3ef2a43728e7\"]},\"/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/ENS.sol\":{\"keccak256\":\"0x5d16fc3e0391d797ec23210e235bdfaa56173034d6e2d1f4d671b62b989c5d05\",\"urls\":[\"bzzr://5adfe3f301d2ee7e3c169d7b164e8d6151da7f201ca8294c65120247523986b6\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xf79fb10e8235770eb4aea7249034076a3cc9f9119ad944fc48705bae9c9d20dc\",\"urls\":[\"bzzr://d12a11272051eb6586de8f7e0a82c04a98c9984ce8b2a6cf1ee439f65aba29a9\"]}},\"version\":1}",
  "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3610ccb806100cf6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637737221311610066578063773722131461021c5780638da5cb5b146102e15780638f32d59b1461032b578063d5fa2b001461034d578063f2fde38b1461039b57610093565b806301ffc9a7146100985780633b3b57de146100fd578063691f34311461016b578063715018a614610212575b600080fd5b6100e3600480360360208110156100ae57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506103df565b604051808215151515815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b81019080803590602001909291905050506104ce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101976004803603602081101561018157600080fd5b810190808035906020019092919050505061050e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d75780820151818401526020810190506101bc565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61021a6105c6565b005b6102df6004803603604081101561023257600080fd5b81019080803590602001909291908035906020019064010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106ff565b005b6102e961084c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610333610875565b604051808215151515815260200191505060405180910390f35b6103996004803603604081101561036357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108cc565b005b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a0a565b005b60006301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104785750633b3b57de60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c7575063691f343160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600160008381526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b50505050509050919050565b6105ce610875565b610640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610707610875565b610779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060010190805190602001906107a3929190610bd4565b507fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f782826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561080d5780820151818401526020810190506107f2565b50505050905090810190601f16801561083a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6108d4610875565b610946576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd28282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b610a12610875565b610a84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a8d81610a90565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610c7a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c1557805160ff1916838001178555610c43565b82800160010185558215610c43579182015b82811115610c42578251825591602001919060010190610c27565b5b509050610c509190610c54565b5090565b610c7691905b80821115610c72576000816000905550600101610c5a565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a723058202c3bbfbe74270906a019ed17bddb99c4c7a57a24bb8c840a6a05ddf27e64db630029",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637737221311610066578063773722131461021c5780638da5cb5b146102e15780638f32d59b1461032b578063d5fa2b001461034d578063f2fde38b1461039b57610093565b806301ffc9a7146100985780633b3b57de146100fd578063691f34311461016b578063715018a614610212575b600080fd5b6100e3600480360360208110156100ae57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690602001909291905050506103df565b604051808215151515815260200191505060405180910390f35b6101296004803603602081101561011357600080fd5b81019080803590602001909291905050506104ce565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101976004803603602081101561018157600080fd5b810190808035906020019092919050505061050e565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101d75780820151818401526020810190506101bc565b50505050905090810190601f1680156102045780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61021a6105c6565b005b6102df6004803603604081101561023257600080fd5b81019080803590602001909291908035906020019064010000000081111561025957600080fd5b82018360208201111561026b57600080fd5b8035906020019184600183028401116401000000008311171561028d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506106ff565b005b6102e961084c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610333610875565b604051808215151515815260200191505060405180910390f35b6103996004803603604081101561036357600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108cc565b005b6103dd600480360360208110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610a0a565b005b60006301ffc9a760e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104785750633b3b57de60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806104c7575063691f343160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b60006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6060600160008381526020019081526020016000206001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156105ba5780601f1061058f576101008083540402835291602001916105ba565b820191906000526020600020905b81548152906001019060200180831161059d57829003601f168201915b50505050509050919050565b6105ce610875565b610640576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610707610875565b610779576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060010190805190602001906107a3929190610bd4565b507fb7d29e911041e8d9b843369e890bcb72c9388692ba48b65ac54e7214c4c348f782826040518083815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561080d5780820151818401526020810190506107f2565b50505050905090810190601f16801561083a5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a15050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6108d4610875565b610946576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b806001600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f52d7d861f09ab3d26239d492e8968629f95e9e318cf0b73bfddc441522a15fd28282604051808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a15050565b610a12610875565b610a84576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610a8d81610a90565b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610c7a6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610c1557805160ff1916838001178555610c43565b82800160010185558215610c43579182015b82811115610c42578251825591602001919060010190610c27565b5b509050610c509190610c54565b5090565b610c7691905b80821115610c72576000816000905550600101610c5a565b5090565b9056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a165627a7a723058202c3bbfbe74270906a019ed17bddb99c4c7a57a24bb8c840a6a05ddf27e64db630029",
  "sourceMap": "197:2330:6:-;;;666:10:15;657:6;;:19;;;;;;;;;;;;;;;;;;724:6;;;;;;;;;;;691:40;;720:1;691:40;;;;;;;;;;;;197:2330:6;;;;;;",
  "deployedSourceMap": "197:2330:6:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;197:2330:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2299:225;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2299:225:6;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1710:102;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1710:102:6;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1950:108;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1950:108:6;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1950:108:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1599:137:15;;;:::i;:::-;;1354:154:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1354:154:6;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1354:154:6;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1354:154:6;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1354:154:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1354:154:6;;;;;;;;;;;;;;;:::i;:::-;;814:77:15;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1165:90;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;966:148:6;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;966:148:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1885:107:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1885:107:15;;;;;;;;;;;;;;;;;;;:::i;:::-;;2299:225:6;2368:4;297:10;2407:20;;2391:36;;;:12;:36;;;;:81;;;;349:10;2455:17;;2439:33;;;:12;:33;;;;2391:81;:126;;;;401:10;2500:17;;2484:33;;;:12;:33;;;;2391:126;2384:133;;2299:225;;;:::o;1710:102::-;1760:7;1786;:14;1794:5;1786:14;;;;;;;;;;;:19;;;;;;;;;;;;1779:26;;1710:102;;;:::o;1950:108::-;2000:13;2032:7;:14;2040:5;2032:14;;;;;;;;;;;:19;;2025:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1950:108;;;:::o;1599:137:15:-;1018:9;:7;:9::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1697:1;1660:40;;1681:6;;;;;;;;;;;1660:40;;;;;;;;;;;;1727:1;1710:6;;:19;;;;;;;;;;;;;;;;;;1599:137::o;1354:154:6:-;1018:9:15;:7;:9::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1456:5:6;1434:7;:14;1442:5;1434:14;;;;;;;;;;;:19;;:27;;;;;;;;;;;;:::i;:::-;;1476:25;1488:5;1495;1476:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1476:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1354:154;;:::o;814:77:15:-;852:7;878:6;;;;;;;;;;;871:13;;814:77;:::o;1165:90::-;1205:4;1242:6;;;;;;;;;;;1228:20;;:10;:20;;;1221:27;;1165:90;:::o;966:148:6:-;1018:9:15;:7;:9::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1062:5:6;1040:7;:14;1048:5;1040:14;;;;;;;;;;;:19;;;:27;;;;;;;;;;;;;;;;;;1082:25;1094:5;1101;1082:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;966:148;;:::o;1885:107:15:-;1018:9;:7;:9::i;:::-;1010:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1957:28;1976:8;1957:18;:28::i;:::-;1885:107;:::o;2093:225::-;2186:1;2166:22;;:8;:22;;;;2158:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2275:8;2246:38;;2267:6;;;;;;;;;;;2246:38;;;;;;;;;;;;2303:8;2294:6;;:17;;;;;;;;;;;;;;;;;;2093:225;:::o;197:2330:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.5.8;\n\nimport 'openzeppelin-solidity/contracts/ownership/Ownable.sol';\nimport \"./ENS.sol\";\n\n/**\n * @title AuthereumENSResolver\n * @dev Authereum implementation of a Resolver.\n */\ncontract AuthereumENSResolver is Ownable, ENSResolver {\n\n    bytes4 constant SUPPORT_INTERFACE_ID = 0x01ffc9a7;\n    bytes4 constant ADDR_INTERFACE_ID = 0x3b3b57de;\n    bytes4 constant NAME_INTERFACE_ID = 0x691f3431;\n\n    // mapping between namehash and resolved records\n    mapping (bytes32 => IndividualRecord) records;\n\n    struct IndividualRecord {\n        address addr;\n        string name;\n    }\n\n    event AddrChanged(bytes32 node, address addr);\n    event NameChanged(bytes32 node, string name);\n\n    /**\n     *  Public functions\n     */\n\n    /// @dev Sets the address associated with an ENS node\n    /// @notice May only be called by the owner of that node in the ENS registry\n    /// @param _node The node to update\n    /// @param _addr The address to set\n    function setAddr(bytes32 _node, address _addr) public onlyOwner {\n        records[_node].addr = _addr;\n        emit AddrChanged(_node, _addr);\n    }\n\n    /// @dev Sets the name associated with an ENS node, for reverse records\n    /// @notice May only be called by the owner of that node in the ENS registry\n    /// @param _node The node to update\n    /// @param _name The name to set\n    function setName(bytes32 _node, string memory _name) public onlyOwner {\n        records[_node].name = _name;\n        emit NameChanged(_node, _name);\n    }\n\n    /// @dev Returns the name associated with an ENS node, for reverse records\n    /// @notice Defined in EIP181.\n    /// @param _node The ENS node to query\n    /// @return The associated address\n    function addr(bytes32 _node) public view returns (address) {\n        return records[_node].addr;\n    }\n\n    /// @dev Gets the name associated to an ENS node\n    /// @param _node The ENS node to query\n    /// @return The associated name\n    function name(bytes32 _node) public view returns (string memory) {\n        return records[_node].name;\n    }\n\n    /// @dev Returns true if the resolver implements the interface specified by the provided hash\n    /// @param _interfaceID The ID of the interface to check for\n    /// @return True if the contract implements the requested interface\n    function supportsInterface(bytes4 _interfaceID) public view returns (bool) {\n        return _interfaceID == SUPPORT_INTERFACE_ID ||\n        _interfaceID == ADDR_INTERFACE_ID ||\n        _interfaceID == NAME_INTERFACE_ID;\n    }\n\n}",
  "sourcePath": "/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/AuthereumENSResolver.sol",
  "ast": {
    "absolutePath": "/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/AuthereumENSResolver.sol",
    "exportedSymbols": {
      "AuthereumENSResolver": [
        1629
      ]
    },
    "id": 1630,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1502,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1503,
        "nodeType": "ImportDirective",
        "scope": 1630,
        "sourceUnit": 4295,
        "src": "25:63:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/ENS.sol",
        "file": "./ENS.sol",
        "id": 1504,
        "nodeType": "ImportDirective",
        "scope": 1630,
        "sourceUnit": 1944,
        "src": "89:19:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1505,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4294,
              "src": "230:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$4294",
                "typeString": "contract Ownable"
              }
            },
            "id": 1506,
            "nodeType": "InheritanceSpecifier",
            "src": "230:7:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1507,
              "name": "ENSResolver",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1912,
              "src": "239:11:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENSResolver_$1912",
                "typeString": "contract ENSResolver"
              }
            },
            "id": 1508,
            "nodeType": "InheritanceSpecifier",
            "src": "239:11:6"
          }
        ],
        "contractDependencies": [
          1912,
          4294
        ],
        "contractKind": "contract",
        "documentation": "@title AuthereumENSResolver\n@dev Authereum implementation of a Resolver.",
        "fullyImplemented": true,
        "id": 1629,
        "linearizedBaseContracts": [
          1629,
          1912,
          4294
        ],
        "name": "AuthereumENSResolver",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 1511,
            "name": "SUPPORT_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "258:49:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1509,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "258:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783031666663396137",
              "id": 1510,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "297:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_33540519_by_1",
                "typeString": "int_const 33540519"
              },
              "value": "0x01ffc9a7"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1514,
            "name": "ADDR_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "313:46:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1512,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "313:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783362336235376465",
              "id": 1513,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "349:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_993744862_by_1",
                "typeString": "int_const 993744862"
              },
              "value": "0x3b3b57de"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1517,
            "name": "NAME_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "365:46:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1515,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "365:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783639316633343331",
              "id": 1516,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "401:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1763652657_by_1",
                "typeString": "int_const 1763652657"
              },
              "value": "0x691f3431"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1521,
            "name": "records",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "471:45:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
              "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord)"
            },
            "typeName": {
              "id": 1520,
              "keyType": {
                "id": 1518,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "480:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "471:37:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1519,
                "name": "IndividualRecord",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1526,
                "src": "491:16:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage_ptr",
                  "typeString": "struct AuthereumENSResolver.IndividualRecord"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "canonicalName": "AuthereumENSResolver.IndividualRecord",
            "id": 1526,
            "members": [
              {
                "constant": false,
                "id": 1523,
                "name": "addr",
                "nodeType": "VariableDeclaration",
                "scope": 1526,
                "src": "557:12:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1522,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "557:7:6",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1525,
                "name": "name",
                "nodeType": "VariableDeclaration",
                "scope": 1526,
                "src": "579:11:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 1524,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "579:6:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndividualRecord",
            "nodeType": "StructDefinition",
            "scope": 1629,
            "src": "523:74:6",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1532,
            "name": "AddrChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1528,
                  "indexed": false,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1532,
                  "src": "621:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "621:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1530,
                  "indexed": false,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1532,
                  "src": "635:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1529,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "635:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "620:28:6"
            },
            "src": "603:46:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1538,
            "name": "NameChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1534,
                  "indexed": false,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1538,
                  "src": "672:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1533,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "672:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1536,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1538,
                  "src": "686:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1535,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "686:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "671:27:6"
            },
            "src": "654:45:6"
          },
          {
            "body": {
              "id": 1559,
              "nodeType": "Block",
              "src": "1030:84:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1547,
                          "name": "records",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1521,
                          "src": "1040:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                            "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                          }
                        },
                        "id": 1549,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1548,
                          "name": "_node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1540,
                          "src": "1048:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1040:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                          "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                        }
                      },
                      "id": 1550,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "addr",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1523,
                      "src": "1040:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1551,
                      "name": "_addr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1542,
                      "src": "1062:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1040:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "1040:27:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1555,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1540,
                        "src": "1094:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1556,
                        "name": "_addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1542,
                        "src": "1101:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1554,
                      "name": "AddrChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1532,
                      "src": "1082:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1557,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1082:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1558,
                  "nodeType": "EmitStatement",
                  "src": "1077:30:6"
                }
              ]
            },
            "documentation": "@dev Sets the address associated with an ENS node\n @notice May only be called by the owner of that node in the ENS registry\n @param _node The node to update\n @param _addr The address to set",
            "id": 1560,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1545,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1544,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4227,
                  "src": "1020:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1020:9:6"
              }
            ],
            "name": "setAddr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1540,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1560,
                  "src": "983:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1539,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1542,
                  "name": "_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1560,
                  "src": "998:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1541,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "998:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "982:30:6"
            },
            "returnParameters": {
              "id": 1546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1030:0:6"
            },
            "scope": 1629,
            "src": "966:148:6",
            "stateMutability": "nonpayable",
            "superFunction": 1897,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1581,
              "nodeType": "Block",
              "src": "1424:84:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1569,
                          "name": "records",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1521,
                          "src": "1434:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                            "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                          }
                        },
                        "id": 1571,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1570,
                          "name": "_node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1562,
                          "src": "1442:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1434:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                          "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                        }
                      },
                      "id": 1572,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "name",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1525,
                      "src": "1434:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1573,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1564,
                      "src": "1456:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1434:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "1434:27:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1577,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1562,
                        "src": "1488:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1578,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1564,
                        "src": "1495:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 1576,
                      "name": "NameChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1538,
                      "src": "1476:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,string memory)"
                      }
                    },
                    "id": 1579,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1476:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1580,
                  "nodeType": "EmitStatement",
                  "src": "1471:30:6"
                }
              ]
            },
            "documentation": "@dev Sets the name associated with an ENS node, for reverse records\n @notice May only be called by the owner of that node in the ENS registry\n @param _node The node to update\n @param _name The name to set",
            "id": 1582,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1567,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1566,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4227,
                  "src": "1414:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1414:9:6"
              }
            ],
            "name": "setName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1562,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1582,
                  "src": "1371:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1561,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1371:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1564,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1582,
                  "src": "1386:19:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1563,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1386:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1370:36:6"
            },
            "returnParameters": {
              "id": 1568,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1424:0:6"
            },
            "scope": 1629,
            "src": "1354:154:6",
            "stateMutability": "nonpayable",
            "superFunction": 1911,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "1769:43:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1589,
                        "name": "records",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "1786:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                          "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                        }
                      },
                      "id": 1591,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1590,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1584,
                        "src": "1794:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1786:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                        "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                      }
                    },
                    "id": 1592,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "addr",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1523,
                    "src": "1786:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1588,
                  "id": 1593,
                  "nodeType": "Return",
                  "src": "1779:26:6"
                }
              ]
            },
            "documentation": "@dev Returns the name associated with an ENS node, for reverse records\n @notice Defined in EIP181.\n @param _node The ENS node to query\n @return The associated address",
            "id": 1595,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1584,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1595,
                  "src": "1724:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1583,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1724:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1723:15:6"
            },
            "returnParameters": {
              "id": 1588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1587,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1595,
                  "src": "1760:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1586,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:9:6"
            },
            "scope": 1629,
            "src": "1710:102:6",
            "stateMutability": "view",
            "superFunction": 1890,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1607,
              "nodeType": "Block",
              "src": "2015:43:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "records",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "2032:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                          "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                        }
                      },
                      "id": 1604,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1603,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1597,
                        "src": "2040:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2032:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                        "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                      }
                    },
                    "id": 1605,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1525,
                    "src": "2032:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 1601,
                  "id": 1606,
                  "nodeType": "Return",
                  "src": "2025:26:6"
                }
              ]
            },
            "documentation": "@dev Gets the name associated to an ENS node\n @param _node The ENS node to query\n @return The associated name",
            "id": 1608,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1597,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1608,
                  "src": "1964:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1596,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1964:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1963:15:6"
            },
            "returnParameters": {
              "id": 1601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1600,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1608,
                  "src": "2000:13:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1599,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2000:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1999:15:6"
            },
            "scope": 1629,
            "src": "1950:108:6",
            "stateMutability": "view",
            "superFunction": 1904,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1627,
              "nodeType": "Block",
              "src": "2374:150:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 1617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1615,
                          "name": "_interfaceID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "2391:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1616,
                          "name": "SUPPORT_INTERFACE_ID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1511,
                          "src": "2407:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2391:36:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 1620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1618,
                          "name": "_interfaceID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "2439:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1619,
                          "name": "ADDR_INTERFACE_ID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1514,
                          "src": "2455:17:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2439:33:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "2391:81:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 1624,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1622,
                        "name": "_interfaceID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "2484:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1623,
                        "name": "NAME_INTERFACE_ID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1517,
                        "src": "2500:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "2484:33:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2391:126:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1614,
                  "id": 1626,
                  "nodeType": "Return",
                  "src": "2384:133:6"
                }
              ]
            },
            "documentation": "@dev Returns true if the resolver implements the interface specified by the provided hash\n @param _interfaceID The ID of the interface to check for\n @return True if the contract implements the requested interface",
            "id": 1628,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1610,
                  "name": "_interfaceID",
                  "nodeType": "VariableDeclaration",
                  "scope": 1628,
                  "src": "2326:19:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 1609,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "2326:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2325:21:6"
            },
            "returnParameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1628,
                  "src": "2368:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2368:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2367:6:6"
            },
            "scope": 1629,
            "src": "2299:225:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1630,
        "src": "197:2330:6"
      }
    ],
    "src": "0:2527:6"
  },
  "legacyAST": {
    "absolutePath": "/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/AuthereumENSResolver.sol",
    "exportedSymbols": {
      "AuthereumENSResolver": [
        1629
      ]
    },
    "id": 1630,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1502,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol",
        "id": 1503,
        "nodeType": "ImportDirective",
        "scope": 1630,
        "sourceUnit": 4295,
        "src": "25:63:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/Users/sh/Dev/clients/0trust/authereum/monorepo/packages/contracts/contracts/ens/ENS.sol",
        "file": "./ENS.sol",
        "id": 1504,
        "nodeType": "ImportDirective",
        "scope": 1630,
        "sourceUnit": 1944,
        "src": "89:19:6",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1505,
              "name": "Ownable",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 4294,
              "src": "230:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Ownable_$4294",
                "typeString": "contract Ownable"
              }
            },
            "id": 1506,
            "nodeType": "InheritanceSpecifier",
            "src": "230:7:6"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1507,
              "name": "ENSResolver",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1912,
              "src": "239:11:6",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ENSResolver_$1912",
                "typeString": "contract ENSResolver"
              }
            },
            "id": 1508,
            "nodeType": "InheritanceSpecifier",
            "src": "239:11:6"
          }
        ],
        "contractDependencies": [
          1912,
          4294
        ],
        "contractKind": "contract",
        "documentation": "@title AuthereumENSResolver\n@dev Authereum implementation of a Resolver.",
        "fullyImplemented": true,
        "id": 1629,
        "linearizedBaseContracts": [
          1629,
          1912,
          4294
        ],
        "name": "AuthereumENSResolver",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "id": 1511,
            "name": "SUPPORT_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "258:49:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1509,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "258:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783031666663396137",
              "id": 1510,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "297:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_33540519_by_1",
                "typeString": "int_const 33540519"
              },
              "value": "0x01ffc9a7"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1514,
            "name": "ADDR_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "313:46:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1512,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "313:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783362336235376465",
              "id": 1513,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "349:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_993744862_by_1",
                "typeString": "int_const 993744862"
              },
              "value": "0x3b3b57de"
            },
            "visibility": "internal"
          },
          {
            "constant": true,
            "id": 1517,
            "name": "NAME_INTERFACE_ID",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "365:46:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes4",
              "typeString": "bytes4"
            },
            "typeName": {
              "id": 1515,
              "name": "bytes4",
              "nodeType": "ElementaryTypeName",
              "src": "365:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes4",
                "typeString": "bytes4"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "30783639316633343331",
              "id": 1516,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "401:10:6",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1763652657_by_1",
                "typeString": "int_const 1763652657"
              },
              "value": "0x691f3431"
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 1521,
            "name": "records",
            "nodeType": "VariableDeclaration",
            "scope": 1629,
            "src": "471:45:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
              "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord)"
            },
            "typeName": {
              "id": 1520,
              "keyType": {
                "id": 1518,
                "name": "bytes32",
                "nodeType": "ElementaryTypeName",
                "src": "480:7:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes32",
                  "typeString": "bytes32"
                }
              },
              "nodeType": "Mapping",
              "src": "471:37:6",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord)"
              },
              "valueType": {
                "contractScope": null,
                "id": 1519,
                "name": "IndividualRecord",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 1526,
                "src": "491:16:6",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage_ptr",
                  "typeString": "struct AuthereumENSResolver.IndividualRecord"
                }
              }
            },
            "value": null,
            "visibility": "internal"
          },
          {
            "canonicalName": "AuthereumENSResolver.IndividualRecord",
            "id": 1526,
            "members": [
              {
                "constant": false,
                "id": 1523,
                "name": "addr",
                "nodeType": "VariableDeclaration",
                "scope": 1526,
                "src": "557:12:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 1522,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "557:7:6",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 1525,
                "name": "name",
                "nodeType": "VariableDeclaration",
                "scope": 1526,
                "src": "579:11:6",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_string_storage_ptr",
                  "typeString": "string"
                },
                "typeName": {
                  "id": 1524,
                  "name": "string",
                  "nodeType": "ElementaryTypeName",
                  "src": "579:6:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_storage_ptr",
                    "typeString": "string"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "IndividualRecord",
            "nodeType": "StructDefinition",
            "scope": 1629,
            "src": "523:74:6",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1532,
            "name": "AddrChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1531,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1528,
                  "indexed": false,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1532,
                  "src": "621:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1527,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "621:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1530,
                  "indexed": false,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1532,
                  "src": "635:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1529,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "635:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "620:28:6"
            },
            "src": "603:46:6"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1538,
            "name": "NameChanged",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1534,
                  "indexed": false,
                  "name": "node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1538,
                  "src": "672:12:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1533,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "672:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1536,
                  "indexed": false,
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1538,
                  "src": "686:11:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1535,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "686:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "671:27:6"
            },
            "src": "654:45:6"
          },
          {
            "body": {
              "id": 1559,
              "nodeType": "Block",
              "src": "1030:84:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1552,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1547,
                          "name": "records",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1521,
                          "src": "1040:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                            "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                          }
                        },
                        "id": 1549,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1548,
                          "name": "_node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1540,
                          "src": "1048:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1040:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                          "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                        }
                      },
                      "id": 1550,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "addr",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1523,
                      "src": "1040:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1551,
                      "name": "_addr",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1542,
                      "src": "1062:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "1040:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 1553,
                  "nodeType": "ExpressionStatement",
                  "src": "1040:27:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1555,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1540,
                        "src": "1094:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1556,
                        "name": "_addr",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1542,
                        "src": "1101:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 1554,
                      "name": "AddrChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1532,
                      "src": "1082:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$",
                        "typeString": "function (bytes32,address)"
                      }
                    },
                    "id": 1557,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1082:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1558,
                  "nodeType": "EmitStatement",
                  "src": "1077:30:6"
                }
              ]
            },
            "documentation": "@dev Sets the address associated with an ENS node\n @notice May only be called by the owner of that node in the ENS registry\n @param _node The node to update\n @param _addr The address to set",
            "id": 1560,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1545,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1544,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4227,
                  "src": "1020:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1020:9:6"
              }
            ],
            "name": "setAddr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1543,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1540,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1560,
                  "src": "983:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1539,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1542,
                  "name": "_addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 1560,
                  "src": "998:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1541,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "998:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "982:30:6"
            },
            "returnParameters": {
              "id": 1546,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1030:0:6"
            },
            "scope": 1629,
            "src": "966:148:6",
            "stateMutability": "nonpayable",
            "superFunction": 1897,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1581,
              "nodeType": "Block",
              "src": "1424:84:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 1574,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 1569,
                          "name": "records",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1521,
                          "src": "1434:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                            "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                          }
                        },
                        "id": 1571,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 1570,
                          "name": "_node",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1562,
                          "src": "1442:5:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "1434:14:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                          "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                        }
                      },
                      "id": 1572,
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "memberName": "name",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1525,
                      "src": "1434:19:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 1573,
                      "name": "_name",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1564,
                      "src": "1456:5:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_memory_ptr",
                        "typeString": "string memory"
                      }
                    },
                    "src": "1434:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 1575,
                  "nodeType": "ExpressionStatement",
                  "src": "1434:27:6"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 1577,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1562,
                        "src": "1488:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 1578,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1564,
                        "src": "1495:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "id": 1576,
                      "name": "NameChanged",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1538,
                      "src": "1476:11:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bytes32,string memory)"
                      }
                    },
                    "id": 1579,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1476:25:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1580,
                  "nodeType": "EmitStatement",
                  "src": "1471:30:6"
                }
              ]
            },
            "documentation": "@dev Sets the name associated with an ENS node, for reverse records\n @notice May only be called by the owner of that node in the ENS registry\n @param _node The node to update\n @param _name The name to set",
            "id": 1582,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 1567,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 1566,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 4227,
                  "src": "1414:9:6",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1414:9:6"
              }
            ],
            "name": "setName",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1565,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1562,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1582,
                  "src": "1371:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1561,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1371:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1564,
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1582,
                  "src": "1386:19:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1563,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1386:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1370:36:6"
            },
            "returnParameters": {
              "id": 1568,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1424:0:6"
            },
            "scope": 1629,
            "src": "1354:154:6",
            "stateMutability": "nonpayable",
            "superFunction": 1911,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1594,
              "nodeType": "Block",
              "src": "1769:43:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1589,
                        "name": "records",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "1786:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                          "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                        }
                      },
                      "id": 1591,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1590,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1584,
                        "src": "1794:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "1786:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                        "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                      }
                    },
                    "id": 1592,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "addr",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1523,
                    "src": "1786:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 1588,
                  "id": 1593,
                  "nodeType": "Return",
                  "src": "1779:26:6"
                }
              ]
            },
            "documentation": "@dev Returns the name associated with an ENS node, for reverse records\n @notice Defined in EIP181.\n @param _node The ENS node to query\n @return The associated address",
            "id": 1595,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "addr",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1584,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1595,
                  "src": "1724:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1583,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1724:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1723:15:6"
            },
            "returnParameters": {
              "id": 1588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1587,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1595,
                  "src": "1760:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1586,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1760:7:6",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1759:9:6"
            },
            "scope": 1629,
            "src": "1710:102:6",
            "stateMutability": "view",
            "superFunction": 1890,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1607,
              "nodeType": "Block",
              "src": "2015:43:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 1602,
                        "name": "records",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1521,
                        "src": "2032:7:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_IndividualRecord_$1526_storage_$",
                          "typeString": "mapping(bytes32 => struct AuthereumENSResolver.IndividualRecord storage ref)"
                        }
                      },
                      "id": 1604,
                      "indexExpression": {
                        "argumentTypes": null,
                        "id": 1603,
                        "name": "_node",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1597,
                        "src": "2040:5:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "2032:14:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_IndividualRecord_$1526_storage",
                        "typeString": "struct AuthereumENSResolver.IndividualRecord storage ref"
                      }
                    },
                    "id": 1605,
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "name",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 1525,
                    "src": "2032:19:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 1601,
                  "id": 1606,
                  "nodeType": "Return",
                  "src": "2025:26:6"
                }
              ]
            },
            "documentation": "@dev Gets the name associated to an ENS node\n @param _node The ENS node to query\n @return The associated name",
            "id": 1608,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1598,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1597,
                  "name": "_node",
                  "nodeType": "VariableDeclaration",
                  "scope": 1608,
                  "src": "1964:13:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1596,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1964:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1963:15:6"
            },
            "returnParameters": {
              "id": 1601,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1600,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1608,
                  "src": "2000:13:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1599,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2000:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1999:15:6"
            },
            "scope": 1629,
            "src": "1950:108:6",
            "stateMutability": "view",
            "superFunction": 1904,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1627,
              "nodeType": "Block",
              "src": "2374:150:6",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 1625,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 1621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 1617,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1615,
                          "name": "_interfaceID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "2391:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1616,
                          "name": "SUPPORT_INTERFACE_ID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1511,
                          "src": "2407:20:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2391:36:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        },
                        "id": 1620,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 1618,
                          "name": "_interfaceID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1610,
                          "src": "2439:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "id": 1619,
                          "name": "ADDR_INTERFACE_ID",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1514,
                          "src": "2455:17:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        },
                        "src": "2439:33:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "2391:81:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 1624,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 1622,
                        "name": "_interfaceID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1610,
                        "src": "2484:12:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 1623,
                        "name": "NAME_INTERFACE_ID",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1517,
                        "src": "2500:17:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "2484:33:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "2391:126:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 1614,
                  "id": 1626,
                  "nodeType": "Return",
                  "src": "2384:133:6"
                }
              ]
            },
            "documentation": "@dev Returns true if the resolver implements the interface specified by the provided hash\n @param _interfaceID The ID of the interface to check for\n @return True if the contract implements the requested interface",
            "id": 1628,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1611,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1610,
                  "name": "_interfaceID",
                  "nodeType": "VariableDeclaration",
                  "scope": 1628,
                  "src": "2326:19:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 1609,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "2326:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2325:21:6"
            },
            "returnParameters": {
              "id": 1614,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1613,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1628,
                  "src": "2368:4:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1612,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2368:4:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2367:6:6"
            },
            "scope": 1629,
            "src": "2299:225:6",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 1630,
        "src": "197:2330:6"
      }
    ],
    "src": "0:2527:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.8+commit.23d335f2.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.11",
  "updatedAt": "2019-07-09T03:45:29.417Z",
  "devdoc": {
    "details": "Authereum implementation of a Resolver.",
    "methods": {
      "addr(bytes32)": {
        "details": "Returns the name associated with an ENS node, for reverse records",
        "params": {
          "_node": "The ENS node to query"
        },
        "return": "The associated address"
      },
      "isOwner()": {
        "details": "Returns true if the caller is the current owner."
      },
      "name(bytes32)": {
        "details": "Gets the name associated to an ENS node",
        "params": {
          "_node": "The ENS node to query"
        },
        "return": "The associated name"
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner.     * > Note: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "setAddr(bytes32,address)": {
        "details": "Sets the address associated with an ENS node",
        "params": {
          "_addr": "The address to set",
          "_node": "The node to update"
        }
      },
      "setName(bytes32,string)": {
        "details": "Sets the name associated with an ENS node, for reverse records",
        "params": {
          "_name": "The name to set",
          "_node": "The node to update"
        }
      },
      "supportsInterface(bytes4)": {
        "details": "Returns true if the resolver implements the interface specified by the provided hash",
        "params": {
          "_interfaceID": "The ID of the interface to check for"
        },
        "return": "True if the contract implements the requested interface"
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "title": "AuthereumENSResolver"
  },
  "userdoc": {
    "methods": {
      "addr(bytes32)": {
        "notice": "Defined in EIP181."
      },
      "setAddr(bytes32,address)": {
        "notice": "May only be called by the owner of that node in the ENS registry"
      },
      "setName(bytes32,string)": {
        "notice": "May only be called by the owner of that node in the ENS registry"
      }
    }
  }
}