{
  "contractName": "DummyDNSSEC",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_expectedType",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "_expectedName",
          "type": "bytes"
        },
        {
          "internalType": "uint32",
          "name": "_inception",
          "type": "uint32"
        },
        {
          "internalType": "uint64",
          "name": "_inserted",
          "type": "uint64"
        },
        {
          "internalType": "bytes",
          "name": "_proof",
          "type": "bytes"
        }
      ],
      "name": "setData",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "dnstype",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "name",
          "type": "bytes"
        }
      ],
      "name": "rrdata",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        },
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        },
        {
          "internalType": "bytes20",
          "name": "",
          "type": "bytes20"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"dnstype\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"}],\"name\":\"rrdata\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"},{\"internalType\":\"bytes20\",\"name\":\"\",\"type\":\"bytes20\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_expectedType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"_expectedName\",\"type\":\"bytes\"},{\"internalType\":\"uint32\",\"name\":\"_inception\",\"type\":\"uint32\"},{\"internalType\":\"uint64\",\"name\":\"_inserted\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"_proof\",\"type\":\"bytes\"}],\"name\":\"setData\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/arachnid/Dropbox/projects/dnsregistrar/contracts/mocks/DummyDNSSEC.sol\":\"DummyDNSSEC\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/arachnid/Dropbox/projects/dnsregistrar/contracts/mocks/DummyDNSSEC.sol\":{\"keccak256\":\"0xcb3ea79a2e82501ef46497379c58528e8664b31c78ce79e8904ff2c89470ed3f\",\"urls\":[\"bzz-raw://e6cf0a50b8f95378842aea2b880d498ba600dfb6ca2680da56be7dfc83920926\",\"dweb:/ipfs/QmX2ZNpuyAkYnozLLHvzWAEdh3dcRRFrQUP9HyzkLxSwNP\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50610558806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063087991bc1461003b5780638581a99c14610145575b600080fd5b6101026004803603604081101561005157600080fd5b81019080803561ffff1690602001909291908035906020019064010000000081111561007c57600080fd5b82018360208201111561008e57600080fd5b803590602001918460018302840111640100000000831117156100b057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c9565b604051808463ffffffff1681526020018367ffffffffffffffff168152602001826bffffffffffffffffffffffff19168152602001935050505060405180910390f35b6102c7600480360360a081101561015b57600080fd5b81019080803561ffff1690602001909291908035906020019064010000000081111561018657600080fd5b82018360208201111561019857600080fd5b803590602001918460018302840111640100000000831117156101ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803563ffffffff169060200190929190803567ffffffffffffffff1690602001909291908035906020019064010000000081111561024157600080fd5b82018360208201111561025357600080fd5b8035906020019184600183028401116401000000008311171561027557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103b4565b005b60008060008060009054906101000a900461ffff1661ffff168561ffff16146102f157600080fd5b6001604051808280546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050915050604051809103902084805190602001201461036d57600080fd5b600260009054906101000a900463ffffffff16600260049054906101000a900467ffffffffffffffff166002600c9054906101000a900460601b9250925092509250925092565b846000806101000a81548161ffff021916908361ffff16021790555083600190805190602001906103e6929190610477565b5082600260006101000a81548163ffffffff021916908363ffffffff16021790555081600260046101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008151146104705780805190602001206002600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908360601c02179055505b5050505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826104ad57600085556104f4565b82601f106104c657805160ff19168380011785556104f4565b828001600101855582156104f4579182015b828111156104f35782518255916020019190600101906104d8565b5b5090506105019190610505565b5090565b5b8082111561051e576000816000905550600101610506565b509056fea2646970667358221220090a680a1f8739e7a929b5d03375d25d63b61468a8aa08424ffd26e75302ac5064736f6c63430007040033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063087991bc1461003b5780638581a99c14610145575b600080fd5b6101026004803603604081101561005157600080fd5b81019080803561ffff1690602001909291908035906020019064010000000081111561007c57600080fd5b82018360208201111561008e57600080fd5b803590602001918460018302840111640100000000831117156100b057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c9565b604051808463ffffffff1681526020018367ffffffffffffffff168152602001826bffffffffffffffffffffffff19168152602001935050505060405180910390f35b6102c7600480360360a081101561015b57600080fd5b81019080803561ffff1690602001909291908035906020019064010000000081111561018657600080fd5b82018360208201111561019857600080fd5b803590602001918460018302840111640100000000831117156101ba57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803563ffffffff169060200190929190803567ffffffffffffffff1690602001909291908035906020019064010000000081111561024157600080fd5b82018360208201111561025357600080fd5b8035906020019184600183028401116401000000008311171561027557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103b4565b005b60008060008060009054906101000a900461ffff1661ffff168561ffff16146102f157600080fd5b6001604051808280546001816001161561010002031660029004801561034e5780601f1061032c57610100808354040283529182019161034e565b820191906000526020600020905b81548152906001019060200180831161033a575b5050915050604051809103902084805190602001201461036d57600080fd5b600260009054906101000a900463ffffffff16600260049054906101000a900467ffffffffffffffff166002600c9054906101000a900460601b9250925092509250925092565b846000806101000a81548161ffff021916908361ffff16021790555083600190805190602001906103e6929190610477565b5082600260006101000a81548163ffffffff021916908363ffffffff16021790555081600260046101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555060008151146104705780805190602001206002600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908360601c02179055505b5050505050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826104ad57600085556104f4565b82601f106104c657805160ff19168380011785556104f4565b828001600101855582156104f4579182015b828111156104f35782518255916020019190600101906104d8565b5b5090506105019190610505565b5090565b5b8082111561051e576000816000905550600101610506565b509056fea2646970667358221220090a680a1f8739e7a929b5d03375d25d63b61468a8aa08424ffd26e75302ac5064736f6c63430007040033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "25:764:6:-:0;;;;;;;;;;;;;;;;;;;",
  "deployedSourceMap": "25:764:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:251;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;163:367;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;536:251;608:6;616;624:7;662:12;;;;;;;;;;;651:23;;:7;:23;;;643:32;;;;;;722:12;712:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;703:4;693:15;;;;;;:42;685:51;;;;;;754:9;;;;;;;;;;;765:8;;;;;;;;;;;775:4;;;;;;;;;;;746:34;;;;;;536:251;;;;;:::o;163:367::-;320:13;305:12;;:28;;;;;;;;;;;;;;;;;;358:13;343:12;:28;;;;;;;;;;;;:::i;:::-;;393:10;381:9;;:22;;;;;;;;;;;;;;;;;;424:9;413:8;;:20;;;;;;;;;;;;;;;;;;463:1;446:6;:13;:18;443:81;;505:6;495:17;;;;;;480:4;;:33;;;;;;;;;;;;;;;;;;443:81;163:367;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o",
  "source": "pragma solidity ^0.7.0;\n\ncontract DummyDNSSEC {\n    uint16 expectedType;\n    bytes expectedName;\n    uint32 inception;\n    uint64 inserted;\n    bytes20 hash;\n\n    function setData(uint16 _expectedType, bytes memory _expectedName, uint32 _inception, uint64 _inserted, bytes memory _proof) public {\n        expectedType = _expectedType;\n        expectedName = _expectedName;\n        inception = _inception;\n        inserted = _inserted;\n        if(_proof.length != 0) {\n            hash = bytes20(keccak256(_proof));\n        }\n    }\n\n    function rrdata(uint16 dnstype, bytes memory name) public view returns (uint32, uint64, bytes20) {\n        require(dnstype == expectedType);\n        require(keccak256(name) == keccak256(expectedName));\n        return (inception, inserted, hash);\n    }\n}\n",
  "sourcePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/mocks/DummyDNSSEC.sol",
  "ast": {
    "absolutePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/mocks/DummyDNSSEC.sol",
    "exportedSymbols": {
      "DummyDNSSEC": [
        1071
      ]
    },
    "id": 1072,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 980,
        "literals": [
          "solidity",
          "^",
          "0.7",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 1071,
        "linearizedBaseContracts": [
          1071
        ],
        "name": "DummyDNSSEC",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 982,
            "mutability": "mutable",
            "name": "expectedType",
            "nodeType": "VariableDeclaration",
            "scope": 1071,
            "src": "52:19:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint16",
              "typeString": "uint16"
            },
            "typeName": {
              "id": 981,
              "name": "uint16",
              "nodeType": "ElementaryTypeName",
              "src": "52:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint16",
                "typeString": "uint16"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 984,
            "mutability": "mutable",
            "name": "expectedName",
            "nodeType": "VariableDeclaration",
            "scope": 1071,
            "src": "77:18:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 983,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "77:5:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 986,
            "mutability": "mutable",
            "name": "inception",
            "nodeType": "VariableDeclaration",
            "scope": 1071,
            "src": "101:16:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint32",
              "typeString": "uint32"
            },
            "typeName": {
              "id": 985,
              "name": "uint32",
              "nodeType": "ElementaryTypeName",
              "src": "101:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint32",
                "typeString": "uint32"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 988,
            "mutability": "mutable",
            "name": "inserted",
            "nodeType": "VariableDeclaration",
            "scope": 1071,
            "src": "123:15:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint64",
              "typeString": "uint64"
            },
            "typeName": {
              "id": 987,
              "name": "uint64",
              "nodeType": "ElementaryTypeName",
              "src": "123:6:6",
              "typeDescriptions": {
                "typeIdentifier": "t_uint64",
                "typeString": "uint64"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 990,
            "mutability": "mutable",
            "name": "hash",
            "nodeType": "VariableDeclaration",
            "scope": 1071,
            "src": "144:12:6",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes20",
              "typeString": "bytes20"
            },
            "typeName": {
              "id": 989,
              "name": "bytes20",
              "nodeType": "ElementaryTypeName",
              "src": "144:7:6",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes20",
                "typeString": "bytes20"
              }
            },
            "visibility": "internal"
          },
          {
            "body": {
              "id": 1034,
              "nodeType": "Block",
              "src": "295:235:6",
              "statements": [
                {
                  "expression": {
                    "id": 1005,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1003,
                      "name": "expectedType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 982,
                      "src": "305:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1004,
                      "name": "_expectedType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 992,
                      "src": "320:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "src": "305:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "id": 1006,
                  "nodeType": "ExpressionStatement",
                  "src": "305:28:6"
                },
                {
                  "expression": {
                    "id": 1009,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1007,
                      "name": "expectedName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 984,
                      "src": "343:12:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_storage",
                        "typeString": "bytes storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1008,
                      "name": "_expectedName",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 994,
                      "src": "358:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes memory"
                      }
                    },
                    "src": "343:28:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage",
                      "typeString": "bytes storage ref"
                    }
                  },
                  "id": 1010,
                  "nodeType": "ExpressionStatement",
                  "src": "343:28:6"
                },
                {
                  "expression": {
                    "id": 1013,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1011,
                      "name": "inception",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 986,
                      "src": "381:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1012,
                      "name": "_inception",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 996,
                      "src": "393:10:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint32",
                        "typeString": "uint32"
                      }
                    },
                    "src": "381:22:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "id": 1014,
                  "nodeType": "ExpressionStatement",
                  "src": "381:22:6"
                },
                {
                  "expression": {
                    "id": 1017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 1015,
                      "name": "inserted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 988,
                      "src": "413:8:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 1016,
                      "name": "_inserted",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 998,
                      "src": "424:9:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint64",
                        "typeString": "uint64"
                      }
                    },
                    "src": "413:20:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "id": 1018,
                  "nodeType": "ExpressionStatement",
                  "src": "413:20:6"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 1022,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 1019,
                        "name": "_proof",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1000,
                        "src": "446:6:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      },
                      "id": 1020,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "446:13:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 1021,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "463:1:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "446:18:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 1033,
                  "nodeType": "IfStatement",
                  "src": "443:81:6",
                  "trueBody": {
                    "id": 1032,
                    "nodeType": "Block",
                    "src": "466:58:6",
                    "statements": [
                      {
                        "expression": {
                          "id": 1030,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 1023,
                            "name": "hash",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 990,
                            "src": "480:4:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "id": 1027,
                                    "name": "_proof",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1000,
                                    "src": "505:6:6",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 1026,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "495:9:6",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 1028,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "495:17:6",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 1025,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "487:7:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_bytes20_$",
                                "typeString": "type(bytes20)"
                              },
                              "typeName": {
                                "id": 1024,
                                "name": "bytes20",
                                "nodeType": "ElementaryTypeName",
                                "src": "487:7:6",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 1029,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "487:26:6",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes20",
                              "typeString": "bytes20"
                            }
                          },
                          "src": "480:33:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes20",
                            "typeString": "bytes20"
                          }
                        },
                        "id": 1031,
                        "nodeType": "ExpressionStatement",
                        "src": "480:33:6"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "8581a99c",
            "id": 1035,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setData",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1001,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 992,
                  "mutability": "mutable",
                  "name": "_expectedType",
                  "nodeType": "VariableDeclaration",
                  "scope": 1035,
                  "src": "180:20:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 991,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "180:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 994,
                  "mutability": "mutable",
                  "name": "_expectedName",
                  "nodeType": "VariableDeclaration",
                  "scope": 1035,
                  "src": "202:26:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 993,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "202:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 996,
                  "mutability": "mutable",
                  "name": "_inception",
                  "nodeType": "VariableDeclaration",
                  "scope": 1035,
                  "src": "230:17:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 995,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "230:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 998,
                  "mutability": "mutable",
                  "name": "_inserted",
                  "nodeType": "VariableDeclaration",
                  "scope": 1035,
                  "src": "249:16:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 997,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "249:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1000,
                  "mutability": "mutable",
                  "name": "_proof",
                  "nodeType": "VariableDeclaration",
                  "scope": 1035,
                  "src": "267:19:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 999,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "267:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "179:108:6"
            },
            "returnParameters": {
              "id": 1002,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "295:0:6"
            },
            "scope": 1071,
            "src": "163:367:6",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 1069,
              "nodeType": "Block",
              "src": "633:154:6",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        "id": 1051,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 1049,
                          "name": "dnstype",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 1037,
                          "src": "651:7:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 1050,
                          "name": "expectedType",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 982,
                          "src": "662:12:6",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "src": "651:23:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1048,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "643:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1052,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "643:32:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1053,
                  "nodeType": "ExpressionStatement",
                  "src": "643:32:6"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 1061,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 1056,
                              "name": "name",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1039,
                              "src": "703:4:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 1055,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "693:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1057,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "693:15:6",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 1059,
                              "name": "expectedName",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 984,
                              "src": "722:12:6",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bytes_storage",
                                "typeString": "bytes storage ref"
                              }
                            ],
                            "id": 1058,
                            "name": "keccak256",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -8,
                            "src": "712:9:6",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (bytes memory) pure returns (bytes32)"
                            }
                          },
                          "id": 1060,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "712:23:6",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "693:42:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 1054,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "685:7:6",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 1062,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "685:51:6",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 1063,
                  "nodeType": "ExpressionStatement",
                  "src": "685:51:6"
                },
                {
                  "expression": {
                    "components": [
                      {
                        "id": 1064,
                        "name": "inception",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 986,
                        "src": "754:9:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "id": 1065,
                        "name": "inserted",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 988,
                        "src": "765:8:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint64",
                          "typeString": "uint64"
                        }
                      },
                      {
                        "id": 1066,
                        "name": "hash",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 990,
                        "src": "775:4:6",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes20",
                          "typeString": "bytes20"
                        }
                      }
                    ],
                    "id": 1067,
                    "isConstant": false,
                    "isInlineArray": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "TupleExpression",
                    "src": "753:27:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_uint32_$_t_uint64_$_t_bytes20_$",
                      "typeString": "tuple(uint32,uint64,bytes20)"
                    }
                  },
                  "functionReturnParameters": 1047,
                  "id": 1068,
                  "nodeType": "Return",
                  "src": "746:34:6"
                }
              ]
            },
            "functionSelector": "087991bc",
            "id": 1070,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "rrdata",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1040,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1037,
                  "mutability": "mutable",
                  "name": "dnstype",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "552:14:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 1036,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "552:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1039,
                  "mutability": "mutable",
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "568:17:6",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 1038,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "568:5:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "551:35:6"
            },
            "returnParameters": {
              "id": 1047,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1042,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "608:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 1041,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "608:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1044,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "616:6:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 1043,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "616:6:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1046,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1070,
                  "src": "624:7:6",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  },
                  "typeName": {
                    "id": 1045,
                    "name": "bytes20",
                    "nodeType": "ElementaryTypeName",
                    "src": "624:7:6",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "607:25:6"
            },
            "scope": 1071,
            "src": "536:251:6",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 1072,
        "src": "25:764:6"
      }
    ],
    "src": "0:790:6"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/home/arachnid/Dropbox/projects/dnsregistrar/contracts/mocks/DummyDNSSEC.sol",
      "exportedSymbols": {
        "DummyDNSSEC": [
          1071
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.7",
            ".0"
          ]
        },
        "id": 980,
        "name": "PragmaDirective",
        "src": "0:23:6"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            1071
          ],
          "name": "DummyDNSSEC",
          "scope": 1072
        },
        "children": [
          {
            "attributes": {
              "constant": false,
              "mutability": "mutable",
              "name": "expectedType",
              "scope": 1071,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint16",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint16",
                  "type": "uint16"
                },
                "id": 981,
                "name": "ElementaryTypeName",
                "src": "52:6:6"
              }
            ],
            "id": 982,
            "name": "VariableDeclaration",
            "src": "52:19:6"
          },
          {
            "attributes": {
              "constant": false,
              "mutability": "mutable",
              "name": "expectedName",
              "scope": 1071,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes",
                  "type": "bytes"
                },
                "id": 983,
                "name": "ElementaryTypeName",
                "src": "77:5:6"
              }
            ],
            "id": 984,
            "name": "VariableDeclaration",
            "src": "77:18:6"
          },
          {
            "attributes": {
              "constant": false,
              "mutability": "mutable",
              "name": "inception",
              "scope": 1071,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint32",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint32",
                  "type": "uint32"
                },
                "id": 985,
                "name": "ElementaryTypeName",
                "src": "101:6:6"
              }
            ],
            "id": 986,
            "name": "VariableDeclaration",
            "src": "101:16:6"
          },
          {
            "attributes": {
              "constant": false,
              "mutability": "mutable",
              "name": "inserted",
              "scope": 1071,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "uint64",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "uint64",
                  "type": "uint64"
                },
                "id": 987,
                "name": "ElementaryTypeName",
                "src": "123:6:6"
              }
            ],
            "id": 988,
            "name": "VariableDeclaration",
            "src": "123:15:6"
          },
          {
            "attributes": {
              "constant": false,
              "mutability": "mutable",
              "name": "hash",
              "scope": 1071,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes20",
              "visibility": "internal"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes20",
                  "type": "bytes20"
                },
                "id": 989,
                "name": "ElementaryTypeName",
                "src": "144:7:6"
              }
            ],
            "id": 990,
            "name": "VariableDeclaration",
            "src": "144:12:6"
          },
          {
            "attributes": {
              "functionSelector": "8581a99c",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "setData",
              "scope": 1071,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_expectedType",
                      "scope": 1035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint16",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint16",
                          "type": "uint16"
                        },
                        "id": 991,
                        "name": "ElementaryTypeName",
                        "src": "180:6:6"
                      }
                    ],
                    "id": 992,
                    "name": "VariableDeclaration",
                    "src": "180:20:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_expectedName",
                      "scope": 1035,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 993,
                        "name": "ElementaryTypeName",
                        "src": "202:5:6"
                      }
                    ],
                    "id": 994,
                    "name": "VariableDeclaration",
                    "src": "202:26:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_inception",
                      "scope": 1035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 995,
                        "name": "ElementaryTypeName",
                        "src": "230:6:6"
                      }
                    ],
                    "id": 996,
                    "name": "VariableDeclaration",
                    "src": "230:17:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_inserted",
                      "scope": 1035,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint64",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint64",
                          "type": "uint64"
                        },
                        "id": 997,
                        "name": "ElementaryTypeName",
                        "src": "249:6:6"
                      }
                    ],
                    "id": 998,
                    "name": "VariableDeclaration",
                    "src": "249:16:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_proof",
                      "scope": 1035,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 999,
                        "name": "ElementaryTypeName",
                        "src": "267:5:6"
                      }
                    ],
                    "id": 1000,
                    "name": "VariableDeclaration",
                    "src": "267:19:6"
                  }
                ],
                "id": 1001,
                "name": "ParameterList",
                "src": "179:108:6"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1002,
                "name": "ParameterList",
                "src": "295:0:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint16"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 982,
                              "type": "uint16",
                              "value": "expectedType"
                            },
                            "id": 1003,
                            "name": "Identifier",
                            "src": "305:12:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 992,
                              "type": "uint16",
                              "value": "_expectedType"
                            },
                            "id": 1004,
                            "name": "Identifier",
                            "src": "320:13:6"
                          }
                        ],
                        "id": 1005,
                        "name": "Assignment",
                        "src": "305:28:6"
                      }
                    ],
                    "id": 1006,
                    "name": "ExpressionStatement",
                    "src": "305:28:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "bytes storage ref"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 984,
                              "type": "bytes storage ref",
                              "value": "expectedName"
                            },
                            "id": 1007,
                            "name": "Identifier",
                            "src": "343:12:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 994,
                              "type": "bytes memory",
                              "value": "_expectedName"
                            },
                            "id": 1008,
                            "name": "Identifier",
                            "src": "358:13:6"
                          }
                        ],
                        "id": 1009,
                        "name": "Assignment",
                        "src": "343:28:6"
                      }
                    ],
                    "id": 1010,
                    "name": "ExpressionStatement",
                    "src": "343:28:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint32"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 986,
                              "type": "uint32",
                              "value": "inception"
                            },
                            "id": 1011,
                            "name": "Identifier",
                            "src": "381:9:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 996,
                              "type": "uint32",
                              "value": "_inception"
                            },
                            "id": 1012,
                            "name": "Identifier",
                            "src": "393:10:6"
                          }
                        ],
                        "id": 1013,
                        "name": "Assignment",
                        "src": "381:22:6"
                      }
                    ],
                    "id": 1014,
                    "name": "ExpressionStatement",
                    "src": "381:22:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "uint64"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 988,
                              "type": "uint64",
                              "value": "inserted"
                            },
                            "id": 1015,
                            "name": "Identifier",
                            "src": "413:8:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 998,
                              "type": "uint64",
                              "value": "_inserted"
                            },
                            "id": 1016,
                            "name": "Identifier",
                            "src": "424:9:6"
                          }
                        ],
                        "id": 1017,
                        "name": "Assignment",
                        "src": "413:20:6"
                      }
                    ],
                    "id": 1018,
                    "name": "ExpressionStatement",
                    "src": "413:20:6"
                  },
                  {
                    "attributes": {},
                    "children": [
                      {
                        "attributes": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "!=",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 1000,
                                  "type": "bytes memory",
                                  "value": "_proof"
                                },
                                "id": 1019,
                                "name": "Identifier",
                                "src": "446:6:6"
                              }
                            ],
                            "id": 1020,
                            "name": "MemberAccess",
                            "src": "446:13:6"
                          },
                          {
                            "attributes": {
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 1021,
                            "name": "Literal",
                            "src": "463:1:6"
                          }
                        ],
                        "id": 1022,
                        "name": "BinaryOperation",
                        "src": "446:18:6"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "bytes20"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 990,
                                      "type": "bytes20",
                                      "value": "hash"
                                    },
                                    "id": 1023,
                                    "name": "Identifier",
                                    "src": "480:4:6"
                                  },
                                  {
                                    "attributes": {
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "bytes20",
                                      "type_conversion": true
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes32",
                                              "typeString": "bytes32"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "type": "type(bytes20)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "bytes20"
                                            },
                                            "id": 1024,
                                            "name": "ElementaryTypeName",
                                            "src": "487:7:6"
                                          }
                                        ],
                                        "id": 1025,
                                        "name": "ElementaryTypeNameExpression",
                                        "src": "487:7:6"
                                      },
                                      {
                                        "attributes": {
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "bytes32",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_bytes_memory_ptr",
                                                  "typeString": "bytes memory"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": -8,
                                              "type": "function (bytes memory) pure returns (bytes32)",
                                              "value": "keccak256"
                                            },
                                            "id": 1026,
                                            "name": "Identifier",
                                            "src": "495:9:6"
                                          },
                                          {
                                            "attributes": {
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 1000,
                                              "type": "bytes memory",
                                              "value": "_proof"
                                            },
                                            "id": 1027,
                                            "name": "Identifier",
                                            "src": "505:6:6"
                                          }
                                        ],
                                        "id": 1028,
                                        "name": "FunctionCall",
                                        "src": "495:17:6"
                                      }
                                    ],
                                    "id": 1029,
                                    "name": "FunctionCall",
                                    "src": "487:26:6"
                                  }
                                ],
                                "id": 1030,
                                "name": "Assignment",
                                "src": "480:33:6"
                              }
                            ],
                            "id": 1031,
                            "name": "ExpressionStatement",
                            "src": "480:33:6"
                          }
                        ],
                        "id": 1032,
                        "name": "Block",
                        "src": "466:58:6"
                      }
                    ],
                    "id": 1033,
                    "name": "IfStatement",
                    "src": "443:81:6"
                  }
                ],
                "id": 1034,
                "name": "Block",
                "src": "295:235:6"
              }
            ],
            "id": 1035,
            "name": "FunctionDefinition",
            "src": "163:367:6"
          },
          {
            "attributes": {
              "functionSelector": "087991bc",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "rrdata",
              "scope": 1071,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "dnstype",
                      "scope": 1070,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint16",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint16",
                          "type": "uint16"
                        },
                        "id": 1036,
                        "name": "ElementaryTypeName",
                        "src": "552:6:6"
                      }
                    ],
                    "id": 1037,
                    "name": "VariableDeclaration",
                    "src": "552:14:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "name",
                      "scope": 1070,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 1038,
                        "name": "ElementaryTypeName",
                        "src": "568:5:6"
                      }
                    ],
                    "id": 1039,
                    "name": "VariableDeclaration",
                    "src": "568:17:6"
                  }
                ],
                "id": 1040,
                "name": "ParameterList",
                "src": "551:35:6"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 1070,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 1041,
                        "name": "ElementaryTypeName",
                        "src": "608:6:6"
                      }
                    ],
                    "id": 1042,
                    "name": "VariableDeclaration",
                    "src": "608:6:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 1070,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint64",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint64",
                          "type": "uint64"
                        },
                        "id": 1043,
                        "name": "ElementaryTypeName",
                        "src": "616:6:6"
                      }
                    ],
                    "id": 1044,
                    "name": "VariableDeclaration",
                    "src": "616:6:6"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 1070,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes20",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes20",
                          "type": "bytes20"
                        },
                        "id": 1045,
                        "name": "ElementaryTypeName",
                        "src": "624:7:6"
                      }
                    ],
                    "id": 1046,
                    "name": "VariableDeclaration",
                    "src": "624:7:6"
                  }
                ],
                "id": 1047,
                "name": "ParameterList",
                "src": "607:25:6"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 1048,
                            "name": "Identifier",
                            "src": "643:7:6"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_uint16",
                                "typeString": "uint16"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 1037,
                                  "type": "uint16",
                                  "value": "dnstype"
                                },
                                "id": 1049,
                                "name": "Identifier",
                                "src": "651:7:6"
                              },
                              {
                                "attributes": {
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 982,
                                  "type": "uint16",
                                  "value": "expectedType"
                                },
                                "id": 1050,
                                "name": "Identifier",
                                "src": "662:12:6"
                              }
                            ],
                            "id": 1051,
                            "name": "BinaryOperation",
                            "src": "651:23:6"
                          }
                        ],
                        "id": 1052,
                        "name": "FunctionCall",
                        "src": "643:32:6"
                      }
                    ],
                    "id": 1053,
                    "name": "ExpressionStatement",
                    "src": "643:32:6"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool) pure",
                              "value": "require"
                            },
                            "id": 1054,
                            "name": "Identifier",
                            "src": "685:7:6"
                          },
                          {
                            "attributes": {
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": -8,
                                      "type": "function (bytes memory) pure returns (bytes32)",
                                      "value": "keccak256"
                                    },
                                    "id": 1055,
                                    "name": "Identifier",
                                    "src": "693:9:6"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 1039,
                                      "type": "bytes memory",
                                      "value": "name"
                                    },
                                    "id": 1056,
                                    "name": "Identifier",
                                    "src": "703:4:6"
                                  }
                                ],
                                "id": 1057,
                                "name": "FunctionCall",
                                "src": "693:15:6"
                              },
                              {
                                "attributes": {
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "bytes32",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_storage",
                                          "typeString": "bytes storage ref"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": -8,
                                      "type": "function (bytes memory) pure returns (bytes32)",
                                      "value": "keccak256"
                                    },
                                    "id": 1058,
                                    "name": "Identifier",
                                    "src": "712:9:6"
                                  },
                                  {
                                    "attributes": {
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 984,
                                      "type": "bytes storage ref",
                                      "value": "expectedName"
                                    },
                                    "id": 1059,
                                    "name": "Identifier",
                                    "src": "722:12:6"
                                  }
                                ],
                                "id": 1060,
                                "name": "FunctionCall",
                                "src": "712:23:6"
                              }
                            ],
                            "id": 1061,
                            "name": "BinaryOperation",
                            "src": "693:42:6"
                          }
                        ],
                        "id": 1062,
                        "name": "FunctionCall",
                        "src": "685:51:6"
                      }
                    ],
                    "id": 1063,
                    "name": "ExpressionStatement",
                    "src": "685:51:6"
                  },
                  {
                    "attributes": {
                      "functionReturnParameters": 1047
                    },
                    "children": [
                      {
                        "attributes": {
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "type": "tuple(uint32,uint64,bytes20)"
                        },
                        "children": [
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 986,
                              "type": "uint32",
                              "value": "inception"
                            },
                            "id": 1064,
                            "name": "Identifier",
                            "src": "754:9:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 988,
                              "type": "uint64",
                              "value": "inserted"
                            },
                            "id": 1065,
                            "name": "Identifier",
                            "src": "765:8:6"
                          },
                          {
                            "attributes": {
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 990,
                              "type": "bytes20",
                              "value": "hash"
                            },
                            "id": 1066,
                            "name": "Identifier",
                            "src": "775:4:6"
                          }
                        ],
                        "id": 1067,
                        "name": "TupleExpression",
                        "src": "753:27:6"
                      }
                    ],
                    "id": 1068,
                    "name": "Return",
                    "src": "746:34:6"
                  }
                ],
                "id": 1069,
                "name": "Block",
                "src": "633:154:6"
              }
            ],
            "id": 1070,
            "name": "FunctionDefinition",
            "src": "536:251:6"
          }
        ],
        "id": 1071,
        "name": "ContractDefinition",
        "src": "25:764:6"
      }
    ],
    "id": 1072,
    "name": "SourceUnit",
    "src": "0:790:6"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.4+commit.3f05b770.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.3",
  "updatedAt": "2021-01-21T03:30:23.436Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}