{
  "contractName": "DNSSEC",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "id",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "AlgorithmUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "id",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "DigestUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "id",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "NSEC3DigestUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "name",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "rrset",
          "type": "bytes"
        }
      ],
      "name": "RRSetUpdated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "anchors",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "submitRRSets",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "rrset",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "sig",
              "type": "bytes"
            }
          ],
          "internalType": "struct DNSSEC.RRSetWithSignature",
          "name": "input",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "submitRRSet",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "deleteType",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "deleteName",
          "type": "bytes"
        },
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "rrset",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "sig",
              "type": "bytes"
            }
          ],
          "internalType": "struct DNSSEC.RRSetWithSignature",
          "name": "nsec",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "deleteRRSet",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "deleteType",
          "type": "uint16"
        },
        {
          "internalType": "bytes",
          "name": "deleteName",
          "type": "bytes"
        },
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "rrset",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "sig",
              "type": "bytes"
            }
          ],
          "internalType": "struct DNSSEC.RRSetWithSignature",
          "name": "closestEncloser",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "bytes",
              "name": "rrset",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "sig",
              "type": "bytes"
            }
          ],
          "internalType": "struct DNSSEC.RRSetWithSignature",
          "name": "nextClosest",
          "type": "tuple"
        },
        {
          "internalType": "bytes",
          "name": "dnskey",
          "type": "bytes"
        }
      ],
      "name": "deleteRRSetNSEC3",
      "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\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"AlgorithmUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"DigestUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"id\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"NSEC3DigestUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"name\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"rrset\",\"type\":\"bytes\"}],\"name\":\"RRSetUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"anchors\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"deleteType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"deleteName\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"rrset\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"internalType\":\"struct DNSSEC.RRSetWithSignature\",\"name\":\"nsec\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"deleteRRSet\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"deleteType\",\"type\":\"uint16\"},{\"internalType\":\"bytes\",\"name\":\"deleteName\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"rrset\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"internalType\":\"struct DNSSEC.RRSetWithSignature\",\"name\":\"closestEncloser\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"rrset\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"internalType\":\"struct DNSSEC.RRSetWithSignature\",\"name\":\"nextClosest\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"dnskey\",\"type\":\"bytes\"}],\"name\":\"deleteRRSetNSEC3\",\"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\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes\",\"name\":\"rrset\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"internalType\":\"struct DNSSEC.RRSetWithSignature\",\"name\":\"input\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"submitRRSet\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"name\":\"submitRRSets\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@ensdomains/dnssec-oracle/contracts/DNSSEC.sol\":\"DNSSEC\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@ensdomains/dnssec-oracle/contracts/DNSSEC.sol\":{\"keccak256\":\"0x8657b615b0d13ca3c52be359127af8d4251b845255cf870ac30f3541eaa62db8\",\"urls\":[\"bzz-raw://2db577b2144ea6b7439d7a244b931b704ecea548bba5707df57528b56d528c81\",\"dweb:/ipfs/QmbjYLu3w6DrLvvY9fFCFBUc2mfjjvj2ULeEBKw6FXHR6q\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [],
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.7.4;\npragma experimental ABIEncoderV2;\n\nabstract contract DNSSEC {\n\n    bytes public anchors;\n\n    struct RRSetWithSignature {\n        bytes rrset;\n        bytes sig;\n    }\n\n    event AlgorithmUpdated(uint8 id, address addr);\n    event DigestUpdated(uint8 id, address addr);\n    event NSEC3DigestUpdated(uint8 id, address addr);\n    event RRSetUpdated(bytes name, bytes rrset);\n\n    function submitRRSets(bytes calldata data, bytes calldata proof) public virtual returns (bytes memory);\n    function submitRRSet(RRSetWithSignature calldata input, bytes calldata proof) public virtual returns (bytes memory);\n    function deleteRRSet(uint16 deleteType, bytes calldata deleteName, RRSetWithSignature calldata nsec, bytes calldata proof) public virtual;\n    function deleteRRSetNSEC3(uint16 deleteType, bytes memory deleteName, RRSetWithSignature memory closestEncloser, RRSetWithSignature memory nextClosest, bytes memory dnskey) public virtual;\n    function rrdata(uint16 dnstype, bytes calldata name) external virtual view returns (uint32, uint64, bytes20);\n}\n",
  "sourcePath": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
  "ast": {
    "absolutePath": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
    "exportedSymbols": {
      "DNSSEC": [
        2273
      ]
    },
    "id": 2274,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2185,
        "literals": [
          "solidity",
          "^",
          "0.7",
          ".4"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:8"
      },
      {
        "id": 2186,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "24:33:8"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 2273,
        "linearizedBaseContracts": [
          2273
        ],
        "name": "DNSSEC",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "98d35f20",
            "id": 2188,
            "mutability": "mutable",
            "name": "anchors",
            "nodeType": "VariableDeclaration",
            "scope": 2273,
            "src": "91:20:8",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes_storage",
              "typeString": "bytes"
            },
            "typeName": {
              "id": 2187,
              "name": "bytes",
              "nodeType": "ElementaryTypeName",
              "src": "91:5:8",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes_storage_ptr",
                "typeString": "bytes"
              }
            },
            "visibility": "public"
          },
          {
            "canonicalName": "DNSSEC.RRSetWithSignature",
            "id": 2193,
            "members": [
              {
                "constant": false,
                "id": 2190,
                "mutability": "mutable",
                "name": "rrset",
                "nodeType": "VariableDeclaration",
                "scope": 2193,
                "src": "154:11:8",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 2189,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "154:5:8",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 2192,
                "mutability": "mutable",
                "name": "sig",
                "nodeType": "VariableDeclaration",
                "scope": 2193,
                "src": "175:9:8",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 2191,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "175:5:8",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RRSetWithSignature",
            "nodeType": "StructDefinition",
            "scope": 2273,
            "src": "118:73:8",
            "visibility": "public"
          },
          {
            "anonymous": false,
            "id": 2199,
            "name": "AlgorithmUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2198,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2195,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2199,
                  "src": "220:8:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2194,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "220:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2197,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2199,
                  "src": "230:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2196,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "230:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "219:24:8"
            },
            "src": "197:47:8"
          },
          {
            "anonymous": false,
            "id": 2205,
            "name": "DigestUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2204,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2201,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2205,
                  "src": "269:8:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2200,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "269:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2203,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2205,
                  "src": "279:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2202,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "279:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "268:24:8"
            },
            "src": "249:44:8"
          },
          {
            "anonymous": false,
            "id": 2211,
            "name": "NSEC3DigestUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2210,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2207,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "scope": 2211,
                  "src": "323:8:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2206,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "323:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2209,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 2211,
                  "src": "333:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2208,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "333:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "322:24:8"
            },
            "src": "298:49:8"
          },
          {
            "anonymous": false,
            "id": 2217,
            "name": "RRSetUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2216,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2213,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 2217,
                  "src": "371:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2212,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "371:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2215,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "rrset",
                  "nodeType": "VariableDeclaration",
                  "scope": 2217,
                  "src": "383:11:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2214,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "383:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "370:25:8"
            },
            "src": "352:44:8"
          },
          {
            "functionSelector": "76a14d1d",
            "id": 2226,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "submitRRSets",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2219,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "424:19:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2218,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "424:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2221,
                  "mutability": "mutable",
                  "name": "proof",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "445:20:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2220,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "445:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "423:43:8"
            },
            "returnParameters": {
              "id": 2225,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2224,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2226,
                  "src": "491:12:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2223,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "491:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "490:14:8"
            },
            "scope": 2273,
            "src": "402:103:8",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "functionSelector": "d7b82ebe",
            "id": 2235,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "submitRRSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2231,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2228,
                  "mutability": "mutable",
                  "name": "input",
                  "nodeType": "VariableDeclaration",
                  "scope": 2235,
                  "src": "531:33:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_calldata_ptr",
                    "typeString": "struct DNSSEC.RRSetWithSignature"
                  },
                  "typeName": {
                    "id": 2227,
                    "name": "RRSetWithSignature",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2193,
                    "src": "531:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_storage_ptr",
                      "typeString": "struct DNSSEC.RRSetWithSignature"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2230,
                  "mutability": "mutable",
                  "name": "proof",
                  "nodeType": "VariableDeclaration",
                  "scope": 2235,
                  "src": "566:20:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2229,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "566:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "530:57:8"
            },
            "returnParameters": {
              "id": 2234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2233,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2235,
                  "src": "612:12:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2232,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "612:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "611:14:8"
            },
            "scope": 2273,
            "src": "510:116:8",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "functionSelector": "2c095cbb",
            "id": 2246,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "deleteRRSet",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2237,
                  "mutability": "mutable",
                  "name": "deleteType",
                  "nodeType": "VariableDeclaration",
                  "scope": 2246,
                  "src": "652:17:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 2236,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "652:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2239,
                  "mutability": "mutable",
                  "name": "deleteName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2246,
                  "src": "671:25:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2238,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "671:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2241,
                  "mutability": "mutable",
                  "name": "nsec",
                  "nodeType": "VariableDeclaration",
                  "scope": 2246,
                  "src": "698:32:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_calldata_ptr",
                    "typeString": "struct DNSSEC.RRSetWithSignature"
                  },
                  "typeName": {
                    "id": 2240,
                    "name": "RRSetWithSignature",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2193,
                    "src": "698:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_storage_ptr",
                      "typeString": "struct DNSSEC.RRSetWithSignature"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2243,
                  "mutability": "mutable",
                  "name": "proof",
                  "nodeType": "VariableDeclaration",
                  "scope": 2246,
                  "src": "732:20:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2242,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "732:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "651:102:8"
            },
            "returnParameters": {
              "id": 2245,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "768:0:8"
            },
            "scope": 2273,
            "src": "631:138:8",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "functionSelector": "0b1a2495",
            "id": 2259,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "deleteRRSetNSEC3",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2257,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2248,
                  "mutability": "mutable",
                  "name": "deleteType",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "800:17:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 2247,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "800:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2250,
                  "mutability": "mutable",
                  "name": "deleteName",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "819:23:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2249,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "819:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2252,
                  "mutability": "mutable",
                  "name": "closestEncloser",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "844:41:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_memory_ptr",
                    "typeString": "struct DNSSEC.RRSetWithSignature"
                  },
                  "typeName": {
                    "id": 2251,
                    "name": "RRSetWithSignature",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2193,
                    "src": "844:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_storage_ptr",
                      "typeString": "struct DNSSEC.RRSetWithSignature"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2254,
                  "mutability": "mutable",
                  "name": "nextClosest",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "887:37:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_memory_ptr",
                    "typeString": "struct DNSSEC.RRSetWithSignature"
                  },
                  "typeName": {
                    "id": 2253,
                    "name": "RRSetWithSignature",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2193,
                    "src": "887:18:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RRSetWithSignature_$2193_storage_ptr",
                      "typeString": "struct DNSSEC.RRSetWithSignature"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2256,
                  "mutability": "mutable",
                  "name": "dnskey",
                  "nodeType": "VariableDeclaration",
                  "scope": 2259,
                  "src": "926:19:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2255,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "926:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "799:147:8"
            },
            "returnParameters": {
              "id": 2258,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "961:0:8"
            },
            "scope": 2273,
            "src": "774:188:8",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "functionSelector": "087991bc",
            "id": 2272,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "rrdata",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2264,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2261,
                  "mutability": "mutable",
                  "name": "dnstype",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "983:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 2260,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "983:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2263,
                  "mutability": "mutable",
                  "name": "name",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "999:19:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2262,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "999:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "982:37:8"
            },
            "returnParameters": {
              "id": 2271,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2266,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "1051:6:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2265,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1051:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2268,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "1059:6:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 2267,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "1059:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2270,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2272,
                  "src": "1067:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes20",
                    "typeString": "bytes20"
                  },
                  "typeName": {
                    "id": 2269,
                    "name": "bytes20",
                    "nodeType": "ElementaryTypeName",
                    "src": "1067:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes20",
                      "typeString": "bytes20"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1050:25:8"
            },
            "scope": 2273,
            "src": "967:109:8",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 2274,
        "src": "59:1019:8"
      }
    ],
    "src": "0:1079:8"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "@ensdomains/dnssec-oracle/contracts/DNSSEC.sol",
      "exportedSymbols": {
        "DNSSEC": [
          2273
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.7",
            ".4"
          ]
        },
        "id": 2185,
        "name": "PragmaDirective",
        "src": "0:23:8"
      },
      {
        "attributes": {
          "literals": [
            "experimental",
            "ABIEncoderV2"
          ]
        },
        "id": 2186,
        "name": "PragmaDirective",
        "src": "24:33:8"
      },
      {
        "attributes": {
          "abstract": true,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            2273
          ],
          "name": "DNSSEC",
          "scope": 2274
        },
        "children": [
          {
            "attributes": {
              "constant": false,
              "functionSelector": "98d35f20",
              "mutability": "mutable",
              "name": "anchors",
              "scope": 2273,
              "stateVariable": true,
              "storageLocation": "default",
              "type": "bytes",
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "name": "bytes",
                  "type": "bytes"
                },
                "id": 2187,
                "name": "ElementaryTypeName",
                "src": "91:5:8"
              }
            ],
            "id": 2188,
            "name": "VariableDeclaration",
            "src": "91:20:8"
          },
          {
            "attributes": {
              "canonicalName": "DNSSEC.RRSetWithSignature",
              "name": "RRSetWithSignature",
              "scope": 2273,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "rrset",
                  "scope": 2193,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes",
                      "type": "bytes"
                    },
                    "id": 2189,
                    "name": "ElementaryTypeName",
                    "src": "154:5:8"
                  }
                ],
                "id": 2190,
                "name": "VariableDeclaration",
                "src": "154:11:8"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "sig",
                  "scope": 2193,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "bytes",
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "bytes",
                      "type": "bytes"
                    },
                    "id": 2191,
                    "name": "ElementaryTypeName",
                    "src": "175:5:8"
                  }
                ],
                "id": 2192,
                "name": "VariableDeclaration",
                "src": "175:9:8"
              }
            ],
            "id": 2193,
            "name": "StructDefinition",
            "src": "118:73:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "AlgorithmUpdated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "id",
                      "scope": 2199,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2194,
                        "name": "ElementaryTypeName",
                        "src": "220:5:8"
                      }
                    ],
                    "id": 2195,
                    "name": "VariableDeclaration",
                    "src": "220:8:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "addr",
                      "scope": 2199,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2196,
                        "name": "ElementaryTypeName",
                        "src": "230:7:8"
                      }
                    ],
                    "id": 2197,
                    "name": "VariableDeclaration",
                    "src": "230:12:8"
                  }
                ],
                "id": 2198,
                "name": "ParameterList",
                "src": "219:24:8"
              }
            ],
            "id": 2199,
            "name": "EventDefinition",
            "src": "197:47:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "DigestUpdated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "id",
                      "scope": 2205,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2200,
                        "name": "ElementaryTypeName",
                        "src": "269:5:8"
                      }
                    ],
                    "id": 2201,
                    "name": "VariableDeclaration",
                    "src": "269:8:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "addr",
                      "scope": 2205,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2202,
                        "name": "ElementaryTypeName",
                        "src": "279:7:8"
                      }
                    ],
                    "id": 2203,
                    "name": "VariableDeclaration",
                    "src": "279:12:8"
                  }
                ],
                "id": 2204,
                "name": "ParameterList",
                "src": "268:24:8"
              }
            ],
            "id": 2205,
            "name": "EventDefinition",
            "src": "249:44:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "NSEC3DigestUpdated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "id",
                      "scope": 2211,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2206,
                        "name": "ElementaryTypeName",
                        "src": "323:5:8"
                      }
                    ],
                    "id": 2207,
                    "name": "VariableDeclaration",
                    "src": "323:8:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "addr",
                      "scope": 2211,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2208,
                        "name": "ElementaryTypeName",
                        "src": "333:7:8"
                      }
                    ],
                    "id": 2209,
                    "name": "VariableDeclaration",
                    "src": "333:12:8"
                  }
                ],
                "id": 2210,
                "name": "ParameterList",
                "src": "322:24:8"
              }
            ],
            "id": 2211,
            "name": "EventDefinition",
            "src": "298:49:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "name": "RRSetUpdated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "name",
                      "scope": 2217,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2212,
                        "name": "ElementaryTypeName",
                        "src": "371:5:8"
                      }
                    ],
                    "id": 2213,
                    "name": "VariableDeclaration",
                    "src": "371:10:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "rrset",
                      "scope": 2217,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2214,
                        "name": "ElementaryTypeName",
                        "src": "383:5:8"
                      }
                    ],
                    "id": 2215,
                    "name": "VariableDeclaration",
                    "src": "383:11:8"
                  }
                ],
                "id": 2216,
                "name": "ParameterList",
                "src": "370:25:8"
              }
            ],
            "id": 2217,
            "name": "EventDefinition",
            "src": "352:44:8"
          },
          {
            "attributes": {
              "functionSelector": "76a14d1d",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "submitRRSets",
              "scope": 2273,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "data",
                      "scope": 2226,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2218,
                        "name": "ElementaryTypeName",
                        "src": "424:5:8"
                      }
                    ],
                    "id": 2219,
                    "name": "VariableDeclaration",
                    "src": "424:19:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "proof",
                      "scope": 2226,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2220,
                        "name": "ElementaryTypeName",
                        "src": "445:5:8"
                      }
                    ],
                    "id": 2221,
                    "name": "VariableDeclaration",
                    "src": "445:20:8"
                  }
                ],
                "id": 2222,
                "name": "ParameterList",
                "src": "423:43:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 2226,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2223,
                        "name": "ElementaryTypeName",
                        "src": "491:5:8"
                      }
                    ],
                    "id": 2224,
                    "name": "VariableDeclaration",
                    "src": "491:12:8"
                  }
                ],
                "id": 2225,
                "name": "ParameterList",
                "src": "490:14:8"
              }
            ],
            "id": 2226,
            "name": "FunctionDefinition",
            "src": "402:103:8"
          },
          {
            "attributes": {
              "functionSelector": "d7b82ebe",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "submitRRSet",
              "scope": 2273,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "input",
                      "scope": 2235,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "struct DNSSEC.RRSetWithSignature",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "RRSetWithSignature",
                          "referencedDeclaration": 2193,
                          "type": "struct DNSSEC.RRSetWithSignature"
                        },
                        "id": 2227,
                        "name": "UserDefinedTypeName",
                        "src": "531:18:8"
                      }
                    ],
                    "id": 2228,
                    "name": "VariableDeclaration",
                    "src": "531:33:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "proof",
                      "scope": 2235,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2229,
                        "name": "ElementaryTypeName",
                        "src": "566:5:8"
                      }
                    ],
                    "id": 2230,
                    "name": "VariableDeclaration",
                    "src": "566:20:8"
                  }
                ],
                "id": 2231,
                "name": "ParameterList",
                "src": "530:57:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 2235,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2232,
                        "name": "ElementaryTypeName",
                        "src": "612:5:8"
                      }
                    ],
                    "id": 2233,
                    "name": "VariableDeclaration",
                    "src": "612:12:8"
                  }
                ],
                "id": 2234,
                "name": "ParameterList",
                "src": "611:14:8"
              }
            ],
            "id": 2235,
            "name": "FunctionDefinition",
            "src": "510:116:8"
          },
          {
            "attributes": {
              "functionSelector": "2c095cbb",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "deleteRRSet",
              "scope": 2273,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deleteType",
                      "scope": 2246,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint16",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint16",
                          "type": "uint16"
                        },
                        "id": 2236,
                        "name": "ElementaryTypeName",
                        "src": "652:6:8"
                      }
                    ],
                    "id": 2237,
                    "name": "VariableDeclaration",
                    "src": "652:17:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deleteName",
                      "scope": 2246,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2238,
                        "name": "ElementaryTypeName",
                        "src": "671:5:8"
                      }
                    ],
                    "id": 2239,
                    "name": "VariableDeclaration",
                    "src": "671:25:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "nsec",
                      "scope": 2246,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "struct DNSSEC.RRSetWithSignature",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "RRSetWithSignature",
                          "referencedDeclaration": 2193,
                          "type": "struct DNSSEC.RRSetWithSignature"
                        },
                        "id": 2240,
                        "name": "UserDefinedTypeName",
                        "src": "698:18:8"
                      }
                    ],
                    "id": 2241,
                    "name": "VariableDeclaration",
                    "src": "698:32:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "proof",
                      "scope": 2246,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2242,
                        "name": "ElementaryTypeName",
                        "src": "732:5:8"
                      }
                    ],
                    "id": 2243,
                    "name": "VariableDeclaration",
                    "src": "732:20:8"
                  }
                ],
                "id": 2244,
                "name": "ParameterList",
                "src": "651:102:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2245,
                "name": "ParameterList",
                "src": "768:0:8"
              }
            ],
            "id": 2246,
            "name": "FunctionDefinition",
            "src": "631:138:8"
          },
          {
            "attributes": {
              "functionSelector": "0b1a2495",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "deleteRRSetNSEC3",
              "scope": 2273,
              "stateMutability": "nonpayable",
              "virtual": true,
              "visibility": "public"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deleteType",
                      "scope": 2259,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint16",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint16",
                          "type": "uint16"
                        },
                        "id": 2247,
                        "name": "ElementaryTypeName",
                        "src": "800:6:8"
                      }
                    ],
                    "id": 2248,
                    "name": "VariableDeclaration",
                    "src": "800:17:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deleteName",
                      "scope": 2259,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2249,
                        "name": "ElementaryTypeName",
                        "src": "819:5:8"
                      }
                    ],
                    "id": 2250,
                    "name": "VariableDeclaration",
                    "src": "819:23:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "closestEncloser",
                      "scope": 2259,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct DNSSEC.RRSetWithSignature",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "RRSetWithSignature",
                          "referencedDeclaration": 2193,
                          "type": "struct DNSSEC.RRSetWithSignature"
                        },
                        "id": 2251,
                        "name": "UserDefinedTypeName",
                        "src": "844:18:8"
                      }
                    ],
                    "id": 2252,
                    "name": "VariableDeclaration",
                    "src": "844:41:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "nextClosest",
                      "scope": 2259,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct DNSSEC.RRSetWithSignature",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "RRSetWithSignature",
                          "referencedDeclaration": 2193,
                          "type": "struct DNSSEC.RRSetWithSignature"
                        },
                        "id": 2253,
                        "name": "UserDefinedTypeName",
                        "src": "887:18:8"
                      }
                    ],
                    "id": 2254,
                    "name": "VariableDeclaration",
                    "src": "887:37:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "dnskey",
                      "scope": 2259,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2255,
                        "name": "ElementaryTypeName",
                        "src": "926:5:8"
                      }
                    ],
                    "id": 2256,
                    "name": "VariableDeclaration",
                    "src": "926:19:8"
                  }
                ],
                "id": 2257,
                "name": "ParameterList",
                "src": "799:147:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2258,
                "name": "ParameterList",
                "src": "961:0:8"
              }
            ],
            "id": 2259,
            "name": "FunctionDefinition",
            "src": "774:188:8"
          },
          {
            "attributes": {
              "functionSelector": "087991bc",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "rrdata",
              "scope": 2273,
              "stateMutability": "view",
              "virtual": true,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "dnstype",
                      "scope": 2272,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint16",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint16",
                          "type": "uint16"
                        },
                        "id": 2260,
                        "name": "ElementaryTypeName",
                        "src": "983:6:8"
                      }
                    ],
                    "id": 2261,
                    "name": "VariableDeclaration",
                    "src": "983:14:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "name",
                      "scope": 2272,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2262,
                        "name": "ElementaryTypeName",
                        "src": "999:5:8"
                      }
                    ],
                    "id": 2263,
                    "name": "VariableDeclaration",
                    "src": "999:19:8"
                  }
                ],
                "id": 2264,
                "name": "ParameterList",
                "src": "982:37:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 2272,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 2265,
                        "name": "ElementaryTypeName",
                        "src": "1051:6:8"
                      }
                    ],
                    "id": 2266,
                    "name": "VariableDeclaration",
                    "src": "1051:6:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 2272,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint64",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint64",
                          "type": "uint64"
                        },
                        "id": 2267,
                        "name": "ElementaryTypeName",
                        "src": "1059:6:8"
                      }
                    ],
                    "id": 2268,
                    "name": "VariableDeclaration",
                    "src": "1059:6:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "scope": 2272,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes20",
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes20",
                          "type": "bytes20"
                        },
                        "id": 2269,
                        "name": "ElementaryTypeName",
                        "src": "1067:7:8"
                      }
                    ],
                    "id": 2270,
                    "name": "VariableDeclaration",
                    "src": "1067:7:8"
                  }
                ],
                "id": 2271,
                "name": "ParameterList",
                "src": "1050:25:8"
              }
            ],
            "id": 2272,
            "name": "FunctionDefinition",
            "src": "967:109:8"
          }
        ],
        "id": 2273,
        "name": "ContractDefinition",
        "src": "59:1019:8"
      }
    ],
    "id": 2274,
    "name": "SourceUnit",
    "src": "0:1079:8"
  },
  "compiler": {
    "name": "solc",
    "version": "0.7.4+commit.3f05b770.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.3",
  "updatedAt": "2021-01-21T03:26:26.169Z",
  "devdoc": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}