New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@ensdomains/contracts

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ensdomains/contracts - npm Package Compare versions

Comparing version 0.0.1 to 0.0.2

abis/dnssec-oracle/EllipticCurve.json

246

abis/dnssec-oracle/Algorithm.json

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "key",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "data",

@@ -18,2 +19,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "signature",

@@ -26,2 +28,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -31,3 +34,2 @@ "type": "bool"

],
"payable": false,
"stateMutability": "view",

@@ -37,38 +39,48 @@ "type": "function"

],
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"key\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface for contracts implementing a DNSSEC (signing) algorithm.\",\"kind\":\"dev\",\"methods\":{\"verify(bytes,bytes,bytes)\":{\"details\":\"Verifies a signature.\",\"params\":{\"data\":\"The signed data to verify.\",\"key\":\"The public key to verify with.\",\"signature\":\"The signature to verify.\"},\"returns\":{\"_0\":\"True iff the signature is valid.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol\":\"Algorithm\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol\":{\"keccak256\":\"0xc1e27c3d1787a2f22e877708760f3980f4febc25a5eab75f556c5cc3fffaea87\",\"urls\":[\"bzz-raw://b42522404011c767d9e1acf1f3f69b1b648bd8f0a99436433cb7d0c0c7ecc44c\",\"dweb:/ipfs/QmRd45RsUPf3HPMtCH7niRdDn1LSTyw3351VU9BKDJNwq4\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity >0.4.23;\n\n/**\n* @dev An interface for contracts implementing a DNSSEC (signing) algorithm.\n*/\ninterface Algorithm {\n /**\n * @dev Verifies a signature.\n * @param key The public key to verify with.\n * @param data The signed data to verify.\n * @param signature The signature to verify.\n * @return True iff the signature is valid.\n */\n function verify(bytes calldata key, bytes calldata data, bytes calldata signature) external view returns (bool);\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/Algorithm.sol",
"source": "pragma solidity ^0.7.4;\n\n/**\n* @dev An interface for contracts implementing a DNSSEC (signing) algorithm.\n*/\ninterface Algorithm {\n /**\n * @dev Verifies a signature.\n * @param key The public key to verify with.\n * @param data The signed data to verify.\n * @param signature The signature to verify.\n * @return True iff the signature is valid.\n */\n function verify(bytes calldata key, bytes calldata data, bytes calldata signature) external virtual view returns (bool);\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/Algorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol",
"exportedSymbols": {
"Algorithm": [
3124
3863
]
},
"id": 3125,
"id": 3864,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3112,
"id": 3849,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:6"
"src": "0:23:6"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev An interface for contracts implementing a DNSSEC (signing) algorithm.",
"documentation": {
"id": 3850,
"nodeType": "StructuredDocumentation",
"src": "25:83:6",
"text": " @dev An interface for contracts implementing a DNSSEC (signing) algorithm."
},
"fullyImplemented": false,
"id": 3124,
"id": 3863,
"linearizedBaseContracts": [
3124
3863
],

@@ -79,5 +91,10 @@ "name": "Algorithm",

{
"body": null,
"documentation": "@dev Verifies a signature.\n@param key The public key to verify with.\n@param data The signed data to verify.\n@param signature The signature to verify.\n@return True iff the signature is valid.",
"id": 3123,
"documentation": {
"id": 3851,
"nodeType": "StructuredDocumentation",
"src": "135:231:6",
"text": " @dev Verifies a signature.\n @param key The public key to verify with.\n @param data The signed data to verify.\n @param signature The signature to verify.\n @return True iff the signature is valid."
},
"functionSelector": "de8f50a1",
"id": 3862,
"implemented": false,

@@ -89,3 +106,3 @@ "kind": "function",

"parameters": {
"id": 3119,
"id": 3858,
"nodeType": "ParameterList",

@@ -95,7 +112,8 @@ "parameters": [

"constant": false,
"id": 3114,
"id": 3853,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "388:18:6",
"scope": 3862,
"src": "387:18:6",
"stateVariable": false,

@@ -108,6 +126,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3113,
"id": 3852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "388:5:6",
"src": "387:5:6",
"typeDescriptions": {

@@ -118,3 +136,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -124,7 +141,8 @@ },

"constant": false,
"id": 3116,
"id": 3855,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "408:19:6",
"scope": 3862,
"src": "407:19:6",
"stateVariable": false,

@@ -137,6 +155,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3115,
"id": 3854,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "408:5:6",
"src": "407:5:6",
"typeDescriptions": {

@@ -147,3 +165,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -153,7 +170,8 @@ },

"constant": false,
"id": 3118,
"id": 3857,
"mutability": "mutable",
"name": "signature",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "429:24:6",
"scope": 3862,
"src": "428:24:6",
"stateVariable": false,

@@ -166,6 +184,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3117,
"id": 3856,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "429:5:6",
"src": "428:5:6",
"typeDescriptions": {

@@ -176,10 +194,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "387:67:6"
"src": "386:67:6"
},
"returnParameters": {
"id": 3122,
"id": 3861,
"nodeType": "ParameterList",

@@ -189,7 +206,8 @@ "parameters": [

"constant": false,
"id": 3121,
"id": 3860,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "478:4:6",
"scope": 3862,
"src": "485:4:6",
"stateVariable": false,

@@ -202,6 +220,6 @@ "storageLocation": "default",

"typeName": {
"id": 3120,
"id": 3859,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "478:4:6",
"src": "485:4:6",
"typeDescriptions": {

@@ -212,51 +230,56 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "477:6:6"
"src": "484:6:6"
},
"scope": 3124,
"src": "372:112:6",
"scope": 3863,
"src": "371:120:6",
"stateMutability": "view",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3125,
"src": "110:376:6"
"scope": 3864,
"src": "109:384:6"
}
],
"src": "0:487:6"
"src": "0:494:6"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/Algorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol",
"exportedSymbols": {
"Algorithm": [
3124
3863
]
},
"id": 3125,
"id": 3864,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3112,
"id": 3849,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:6"
"src": "0:23:6"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev An interface for contracts implementing a DNSSEC (signing) algorithm.",
"documentation": {
"id": 3850,
"nodeType": "StructuredDocumentation",
"src": "25:83:6",
"text": " @dev An interface for contracts implementing a DNSSEC (signing) algorithm."
},
"fullyImplemented": false,
"id": 3124,
"id": 3863,
"linearizedBaseContracts": [
3124
3863
],

@@ -267,5 +290,10 @@ "name": "Algorithm",

{
"body": null,
"documentation": "@dev Verifies a signature.\n@param key The public key to verify with.\n@param data The signed data to verify.\n@param signature The signature to verify.\n@return True iff the signature is valid.",
"id": 3123,
"documentation": {
"id": 3851,
"nodeType": "StructuredDocumentation",
"src": "135:231:6",
"text": " @dev Verifies a signature.\n @param key The public key to verify with.\n @param data The signed data to verify.\n @param signature The signature to verify.\n @return True iff the signature is valid."
},
"functionSelector": "de8f50a1",
"id": 3862,
"implemented": false,

@@ -277,3 +305,3 @@ "kind": "function",

"parameters": {
"id": 3119,
"id": 3858,
"nodeType": "ParameterList",

@@ -283,7 +311,8 @@ "parameters": [

"constant": false,
"id": 3114,
"id": 3853,
"mutability": "mutable",
"name": "key",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "388:18:6",
"scope": 3862,
"src": "387:18:6",
"stateVariable": false,

@@ -296,6 +325,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3113,
"id": 3852,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "388:5:6",
"src": "387:5:6",
"typeDescriptions": {

@@ -306,3 +335,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -312,7 +340,8 @@ },

"constant": false,
"id": 3116,
"id": 3855,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "408:19:6",
"scope": 3862,
"src": "407:19:6",
"stateVariable": false,

@@ -325,6 +354,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3115,
"id": 3854,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "408:5:6",
"src": "407:5:6",
"typeDescriptions": {

@@ -335,3 +364,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -341,7 +369,8 @@ },

"constant": false,
"id": 3118,
"id": 3857,
"mutability": "mutable",
"name": "signature",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "429:24:6",
"scope": 3862,
"src": "428:24:6",
"stateVariable": false,

@@ -354,6 +383,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3117,
"id": 3856,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "429:5:6",
"src": "428:5:6",
"typeDescriptions": {

@@ -364,10 +393,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "387:67:6"
"src": "386:67:6"
},
"returnParameters": {
"id": 3122,
"id": 3861,
"nodeType": "ParameterList",

@@ -377,7 +405,8 @@ "parameters": [

"constant": false,
"id": 3121,
"id": 3860,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3123,
"src": "478:4:6",
"scope": 3862,
"src": "485:4:6",
"stateVariable": false,

@@ -390,6 +419,6 @@ "storageLocation": "default",

"typeName": {
"id": 3120,
"id": 3859,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "478:4:6",
"src": "485:4:6",
"typeDescriptions": {

@@ -400,30 +429,30 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "477:6:6"
"src": "484:6:6"
},
"scope": 3124,
"src": "372:112:6",
"scope": 3863,
"src": "371:120:6",
"stateMutability": "view",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3125,
"src": "110:376:6"
"scope": 3864,
"src": "109:384:6"
}
],
"src": "0:487:6"
"src": "0:494:6"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.376Z",
"schemaVersion": "3.3.2",
"updatedAt": "2021-01-27T15:35:30.229Z",
"devdoc": {
"details": "An interface for contracts implementing a DNSSEC (signing) algorithm.",
"kind": "dev",
"methods": {

@@ -437,9 +466,14 @@ "verify(bytes,bytes,bytes)": {

},
"return": "True iff the signature is valid."
"returns": {
"_0": "True iff the signature is valid."
}
}
}
},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "data",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "hash",

@@ -21,2 +22,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -26,3 +28,2 @@ "type": "bool"

],
"payable": false,
"stateMutability": "pure",

@@ -32,38 +33,48 @@ "type": "function"

],
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"hash\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An interface for contracts implementing a DNSSEC digest.\",\"kind\":\"dev\",\"methods\":{\"verify(bytes,bytes)\":{\"details\":\"Verifies a cryptographic hash.\",\"params\":{\"data\":\"The data to hash.\",\"hash\":\"The hash to compare to.\"},\"returns\":{\"_0\":\"True iff the hashed data matches the provided hash value.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol\":\"Digest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol\":{\"keccak256\":\"0x10a3ed9231c6a7e16c5e673f8449f205c33df2a2cc4c09db0abac046abe6231e\",\"urls\":[\"bzz-raw://589c2266b6124c93c8410059d9f5902ca95d23a5e04961aa0c7489fcdc63e57c\",\"dweb:/ipfs/QmPKkuWhG6TtQXeEG5nTu8WukjeojqSMANqBgCFMf8fdnC\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity >0.4.23;\n\n/**\n* @dev An interface for contracts implementing a DNSSEC digest.\n*/\ninterface Digest {\n /**\n * @dev Verifies a cryptographic hash.\n * @param data The data to hash.\n * @param hash The hash to compare to.\n * @return True iff the hashed data matches the provided hash value.\n */\n function verify(bytes calldata data, bytes calldata hash) external pure returns (bool);\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"source": "pragma solidity ^0.7.4;\n\n/**\n* @dev An interface for contracts implementing a DNSSEC digest.\n*/\ninterface Digest {\n /**\n * @dev Verifies a cryptographic hash.\n * @param data The data to hash.\n * @param hash The hash to compare to.\n * @return True iff the hashed data matches the provided hash value.\n */\n function verify(bytes calldata data, bytes calldata hash) external virtual pure returns (bool);\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"exportedSymbols": {
"Digest": [
3539
5741
]
},
"id": 3540,
"id": 5742,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3529,
"id": 5729,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:12"
"src": "0:23:14"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev An interface for contracts implementing a DNSSEC digest.",
"documentation": {
"id": 5730,
"nodeType": "StructuredDocumentation",
"src": "25:70:14",
"text": " @dev An interface for contracts implementing a DNSSEC digest."
},
"fullyImplemented": false,
"id": 3539,
"id": 5741,
"linearizedBaseContracts": [
3539
5741
],

@@ -74,5 +85,10 @@ "name": "Digest",

{
"body": null,
"documentation": "@dev Verifies a cryptographic hash.\n@param data The data to hash.\n@param hash The hash to compare to.\n@return True iff the hashed data matches the provided hash value.",
"id": 3538,
"documentation": {
"id": 5731,
"nodeType": "StructuredDocumentation",
"src": "119:202:14",
"text": " @dev Verifies a cryptographic hash.\n @param data The data to hash.\n @param hash The hash to compare to.\n @return True iff the hashed data matches the provided hash value."
},
"functionSelector": "f7e83aee",
"id": 5740,
"implemented": false,

@@ -84,3 +100,3 @@ "kind": "function",

"parameters": {
"id": 3534,
"id": 5736,
"nodeType": "ParameterList",

@@ -90,7 +106,8 @@ "parameters": [

"constant": false,
"id": 3531,
"id": 5733,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "343:19:12",
"scope": 5740,
"src": "342:19:14",
"stateVariable": false,

@@ -103,6 +120,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3530,
"id": 5732,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "343:5:12",
"src": "342:5:14",
"typeDescriptions": {

@@ -113,3 +130,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -119,7 +135,8 @@ },

"constant": false,
"id": 3533,
"id": 5735,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "364:19:12",
"scope": 5740,
"src": "363:19:14",
"stateVariable": false,

@@ -132,6 +149,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3532,
"id": 5734,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "364:5:12",
"src": "363:5:14",
"typeDescriptions": {

@@ -142,10 +159,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "342:42:12"
"src": "341:42:14"
},
"returnParameters": {
"id": 3537,
"id": 5739,
"nodeType": "ParameterList",

@@ -155,7 +171,8 @@ "parameters": [

"constant": false,
"id": 3536,
"id": 5738,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "408:4:12",
"scope": 5740,
"src": "415:4:14",
"stateVariable": false,

@@ -168,6 +185,6 @@ "storageLocation": "default",

"typeName": {
"id": 3535,
"id": 5737,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "408:4:12",
"src": "415:4:14",
"typeDescriptions": {

@@ -178,51 +195,56 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "407:6:12"
"src": "414:6:14"
},
"scope": 3539,
"src": "327:87:12",
"scope": 5741,
"src": "326:95:14",
"stateMutability": "pure",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3540,
"src": "97:319:12"
"scope": 5742,
"src": "96:327:14"
}
],
"src": "0:417:12"
"src": "0:424:14"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"exportedSymbols": {
"Digest": [
3539
5741
]
},
"id": 3540,
"id": 5742,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3529,
"id": 5729,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:12"
"src": "0:23:14"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev An interface for contracts implementing a DNSSEC digest.",
"documentation": {
"id": 5730,
"nodeType": "StructuredDocumentation",
"src": "25:70:14",
"text": " @dev An interface for contracts implementing a DNSSEC digest."
},
"fullyImplemented": false,
"id": 3539,
"id": 5741,
"linearizedBaseContracts": [
3539
5741
],

@@ -233,5 +255,10 @@ "name": "Digest",

{
"body": null,
"documentation": "@dev Verifies a cryptographic hash.\n@param data The data to hash.\n@param hash The hash to compare to.\n@return True iff the hashed data matches the provided hash value.",
"id": 3538,
"documentation": {
"id": 5731,
"nodeType": "StructuredDocumentation",
"src": "119:202:14",
"text": " @dev Verifies a cryptographic hash.\n @param data The data to hash.\n @param hash The hash to compare to.\n @return True iff the hashed data matches the provided hash value."
},
"functionSelector": "f7e83aee",
"id": 5740,
"implemented": false,

@@ -243,3 +270,3 @@ "kind": "function",

"parameters": {
"id": 3534,
"id": 5736,
"nodeType": "ParameterList",

@@ -249,7 +276,8 @@ "parameters": [

"constant": false,
"id": 3531,
"id": 5733,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "343:19:12",
"scope": 5740,
"src": "342:19:14",
"stateVariable": false,

@@ -262,6 +290,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3530,
"id": 5732,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "343:5:12",
"src": "342:5:14",
"typeDescriptions": {

@@ -272,3 +300,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -278,7 +305,8 @@ },

"constant": false,
"id": 3533,
"id": 5735,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "364:19:12",
"scope": 5740,
"src": "363:19:14",
"stateVariable": false,

@@ -291,6 +319,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3532,
"id": 5734,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "364:5:12",
"src": "363:5:14",
"typeDescriptions": {

@@ -301,10 +329,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "342:42:12"
"src": "341:42:14"
},
"returnParameters": {
"id": 3537,
"id": 5739,
"nodeType": "ParameterList",

@@ -314,7 +341,8 @@ "parameters": [

"constant": false,
"id": 3536,
"id": 5738,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3538,
"src": "408:4:12",
"scope": 5740,
"src": "415:4:14",
"stateVariable": false,

@@ -327,6 +355,6 @@ "storageLocation": "default",

"typeName": {
"id": 3535,
"id": 5737,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "408:4:12",
"src": "415:4:14",
"typeDescriptions": {

@@ -337,30 +365,30 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "407:6:12"
"src": "414:6:14"
},
"scope": 3539,
"src": "327:87:12",
"scope": 5741,
"src": "326:95:14",
"stateMutability": "pure",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3540,
"src": "97:319:12"
"scope": 5742,
"src": "96:327:14"
}
],
"src": "0:417:12"
"src": "0:424:14"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.377Z",
"schemaVersion": "3.3.2",
"updatedAt": "2021-01-27T15:35:30.278Z",
"devdoc": {
"details": "An interface for contracts implementing a DNSSEC digest.",
"kind": "dev",
"methods": {

@@ -373,9 +401,14 @@ "verify(bytes,bytes)": {

},
"return": "True iff the hashed data matches the provided hash value."
"returns": {
"_0": "True iff the hashed data matches the provided hash value."
}
}
}
},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "",

@@ -18,2 +19,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "",

@@ -26,2 +28,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -31,42 +34,47 @@ "type": "bool"

],
"payable": false,
"stateMutability": "view",
"type": "function"
"type": "function",
"constant": true
}
],
"bytecode": "0x608060405234801561001057600080fd5b506101ca806100206000396000f3fe608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063de8f50a114610046575b600080fd5b34801561005257600080fd5b506101746004803603606081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b90919293919293908035906020019064010000000081111561013057600080fd5b82018360208201111561014257600080fd5b8035906020019184600183028401116401000000008311171561016457600080fd5b909192939192939050505061018e565b604051808215151515815260200191505060405180910390f35b600060019050969550505050505056fea165627a7a72305820a5f43819e7cb8198e6a778d3b000a557440ebeb71d201d9e94caaacbb2eedacc0029",
"deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063de8f50a114610046575b600080fd5b34801561005257600080fd5b506101746004803603606081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b90919293919293908035906020019064010000000081111561013057600080fd5b82018360208201111561014257600080fd5b8035906020019184600183028401116401000000008311171561016457600080fd5b909192939192939050505061018e565b604051808215151515815260200191505060405180910390f35b600060019050969550505050505056fea165627a7a72305820a5f43819e7cb8198e6a778d3b000a557440ebeb71d201d9e94caaacbb2eedacc0029",
"sourceMap": "163:154:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;163:154:7;;;;;;;",
"deployedSourceMap": "163:154:7:-;;;;;;;;;;;;;;;;;;;;;;;;206:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;206:109:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;206:109:7;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;206:109:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;206:109:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;206:109:7;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;206:109:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;206:109:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;206:109:7;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;206:109:7;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;206:109:7;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;206:109:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;293:4;308;301:11;;206:109;;;;;;;;:::o",
"source": "pragma solidity >0.4.23;\n\nimport \"./Algorithm.sol\";\n\n/**\n* @dev Implements a dummy DNSSEC (signing) algorithm that approves all\n* signatures, for testing.\n*/\ncontract DummyAlgorithm is Algorithm {\n function verify(bytes calldata, bytes calldata, bytes calldata) external view returns (bool) { return true; }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/DummyAlgorithm.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements a dummy DNSSEC (signing) algorithm that approves all signatures, for testing.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/DummyAlgorithm.sol\":\"DummyAlgorithm\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol\":{\"keccak256\":\"0xc1e27c3d1787a2f22e877708760f3980f4febc25a5eab75f556c5cc3fffaea87\",\"urls\":[\"bzz-raw://b42522404011c767d9e1acf1f3f69b1b648bd8f0a99436433cb7d0c0c7ecc44c\",\"dweb:/ipfs/QmRd45RsUPf3HPMtCH7niRdDn1LSTyw3351VU9BKDJNwq4\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/DummyAlgorithm.sol\":{\"keccak256\":\"0xdea4d125eed975f194a34213e8a2758ef5b53f35d6163959fc3fca82183d2894\",\"urls\":[\"bzz-raw://2bf7b91d04cb4d1b2c214ba085ef3308111dd010f62300843bdff57b64720cbf\",\"dweb:/ipfs/QmT6XVZRbsjAQa44qqHPC6416v6xRJ9mvnzrAFBmdh3Ddj\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b506101af806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b6101516004803603606081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b90919293919293908035906020019064010000000081111561010d57600080fd5b82018360208201111561011f57600080fd5b8035906020019184600183028401116401000000008311171561014157600080fd5b9091929391929390505050610169565b60405180821515815260200191505060405180910390f35b600060019050969550505050505056fea264697066735822122016135ac979afcc45e7ccc773e87c2f361a8db66ef3f085d1213b16573b0f7e4e64736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063de8f50a114610030575b600080fd5b6101516004803603606081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b90919293919293908035906020019064010000000081111561010d57600080fd5b82018360208201111561011f57600080fd5b8035906020019184600183028401116401000000008311171561014157600080fd5b9091929391929390505050610169565b60405180821515815260200191505060405180910390f35b600060019050969550505050505056fea264697066735822122016135ac979afcc45e7ccc773e87c2f361a8db66ef3f085d1213b16573b0f7e4e64736f6c63430007040033",
"immutableReferences": {},
"sourceMap": "162:163:7:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "162:163:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;205:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;301:4;316;309:11;;205:118;;;;;;;;:::o",
"source": "pragma solidity ^0.7.4;\n\nimport \"./Algorithm.sol\";\n\n/**\n* @dev Implements a dummy DNSSEC (signing) algorithm that approves all\n* signatures, for testing.\n*/\ncontract DummyAlgorithm is Algorithm {\n function verify(bytes calldata, bytes calldata, bytes calldata) external override view returns (bool) { return true; }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/DummyAlgorithm.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/DummyAlgorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/DummyAlgorithm.sol",
"exportedSymbols": {
"Algorithm": [
3863
],
"DummyAlgorithm": [
3144
3885
]
},
"id": 3145,
"id": 3886,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3126,
"id": 3865,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:7"
"src": "0:23:7"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/Algorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol",
"file": "./Algorithm.sol",
"id": 3127,
"id": 3866,
"nodeType": "ImportDirective",
"scope": 3145,
"sourceUnit": 3125,
"src": "26:25:7",
"scope": 3886,
"sourceUnit": 3864,
"src": "25:25:7",
"symbolAliases": [],

@@ -76,32 +84,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3128,
"id": 3868,
"name": "Algorithm",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3124,
"src": "190:9:7",
"referencedDeclaration": 3863,
"src": "189:9:7",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Algorithm_$3124",
"typeIdentifier": "t_contract$_Algorithm_$3863",
"typeString": "contract Algorithm"
}
},
"id": 3129,
"id": 3869,
"nodeType": "InheritanceSpecifier",
"src": "190:9:7"
"src": "189:9:7"
}
],
"contractDependencies": [
3124
3863
],
"contractKind": "contract",
"documentation": "@dev Implements a dummy DNSSEC (signing) algorithm that approves all\n signatures, for testing.",
"documentation": {
"id": 3867,
"nodeType": "StructuredDocumentation",
"src": "52:109:7",
"text": " @dev Implements a dummy DNSSEC (signing) algorithm that approves all\n signatures, for testing."
},
"fullyImplemented": true,
"id": 3144,
"id": 3885,
"linearizedBaseContracts": [
3144,
3124
3885,
3863
],

@@ -112,12 +124,14 @@ "name": "DummyAlgorithm",

{
"baseFunctions": [
3862
],
"body": {
"id": 3142,
"id": 3883,
"nodeType": "Block",
"src": "299:16:7",
"src": "307:16:7",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3140,
"id": 3881,
"isConstant": false,

@@ -129,4 +143,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "308:4:7",
"subdenomination": null,
"src": "316:4:7",
"typeDescriptions": {

@@ -138,11 +151,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3139,
"id": 3141,
"functionReturnParameters": 3880,
"id": 3882,
"nodeType": "Return",
"src": "301:11:7"
"src": "309:11:7"
}
]
},
"documentation": null,
"id": 3143,
"functionSelector": "de8f50a1",
"id": 3884,
"implemented": true,

@@ -153,4 +166,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 3877,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "278:8:7"
},
"parameters": {
"id": 3136,
"id": 3876,
"nodeType": "ParameterList",

@@ -160,7 +179,8 @@ "parameters": [

"constant": false,
"id": 3131,
"id": 3871,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "222:14:7",
"scope": 3884,
"src": "221:14:7",
"stateVariable": false,

@@ -173,6 +193,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3130,
"id": 3870,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "222:5:7",
"src": "221:5:7",
"typeDescriptions": {

@@ -183,3 +203,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -189,7 +208,8 @@ },

"constant": false,
"id": 3133,
"id": 3873,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "238:14:7",
"scope": 3884,
"src": "237:14:7",
"stateVariable": false,

@@ -202,6 +222,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3132,
"id": 3872,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "238:5:7",
"src": "237:5:7",
"typeDescriptions": {

@@ -212,3 +232,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -218,7 +237,8 @@ },

"constant": false,
"id": 3135,
"id": 3875,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "254:14:7",
"scope": 3884,
"src": "253:14:7",
"stateVariable": false,

@@ -231,6 +251,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3134,
"id": 3874,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "254:5:7",
"src": "253:5:7",
"typeDescriptions": {

@@ -241,10 +261,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "221:48:7"
"src": "220:48:7"
},
"returnParameters": {
"id": 3139,
"id": 3880,
"nodeType": "ParameterList",

@@ -254,7 +273,8 @@ "parameters": [

"constant": false,
"id": 3138,
"id": 3879,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "293:4:7",
"scope": 3884,
"src": "301:4:7",
"stateVariable": false,

@@ -267,6 +287,6 @@ "storageLocation": "default",

"typeName": {
"id": 3137,
"id": 3878,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "293:4:7",
"src": "301:4:7",
"typeDescriptions": {

@@ -277,50 +297,52 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "292:6:7"
"src": "300:6:7"
},
"scope": 3144,
"src": "206:109:7",
"scope": 3885,
"src": "205:118:7",
"stateMutability": "view",
"superFunction": 3123,
"virtual": false,
"visibility": "external"
}
],
"scope": 3145,
"src": "163:154:7"
"scope": 3886,
"src": "162:163:7"
}
],
"src": "0:318:7"
"src": "0:326:7"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/DummyAlgorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/DummyAlgorithm.sol",
"exportedSymbols": {
"Algorithm": [
3863
],
"DummyAlgorithm": [
3144
3885
]
},
"id": 3145,
"id": 3886,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3126,
"id": 3865,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:7"
"src": "0:23:7"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/Algorithm.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/Algorithm.sol",
"file": "./Algorithm.sol",
"id": 3127,
"id": 3866,
"nodeType": "ImportDirective",
"scope": 3145,
"sourceUnit": 3125,
"src": "26:25:7",
"scope": 3886,
"sourceUnit": 3864,
"src": "25:25:7",
"symbolAliases": [],

@@ -330,32 +352,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3128,
"id": 3868,
"name": "Algorithm",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3124,
"src": "190:9:7",
"referencedDeclaration": 3863,
"src": "189:9:7",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Algorithm_$3124",
"typeIdentifier": "t_contract$_Algorithm_$3863",
"typeString": "contract Algorithm"
}
},
"id": 3129,
"id": 3869,
"nodeType": "InheritanceSpecifier",
"src": "190:9:7"
"src": "189:9:7"
}
],
"contractDependencies": [
3124
3863
],
"contractKind": "contract",
"documentation": "@dev Implements a dummy DNSSEC (signing) algorithm that approves all\n signatures, for testing.",
"documentation": {
"id": 3867,
"nodeType": "StructuredDocumentation",
"src": "52:109:7",
"text": " @dev Implements a dummy DNSSEC (signing) algorithm that approves all\n signatures, for testing."
},
"fullyImplemented": true,
"id": 3144,
"id": 3885,
"linearizedBaseContracts": [
3144,
3124
3885,
3863
],

@@ -366,12 +392,14 @@ "name": "DummyAlgorithm",

{
"baseFunctions": [
3862
],
"body": {
"id": 3142,
"id": 3883,
"nodeType": "Block",
"src": "299:16:7",
"src": "307:16:7",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3140,
"id": 3881,
"isConstant": false,

@@ -383,4 +411,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "308:4:7",
"subdenomination": null,
"src": "316:4:7",
"typeDescriptions": {

@@ -392,11 +419,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3139,
"id": 3141,
"functionReturnParameters": 3880,
"id": 3882,
"nodeType": "Return",
"src": "301:11:7"
"src": "309:11:7"
}
]
},
"documentation": null,
"id": 3143,
"functionSelector": "de8f50a1",
"id": 3884,
"implemented": true,

@@ -407,4 +434,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 3877,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "278:8:7"
},
"parameters": {
"id": 3136,
"id": 3876,
"nodeType": "ParameterList",

@@ -414,7 +447,8 @@ "parameters": [

"constant": false,
"id": 3131,
"id": 3871,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "222:14:7",
"scope": 3884,
"src": "221:14:7",
"stateVariable": false,

@@ -427,6 +461,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3130,
"id": 3870,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "222:5:7",
"src": "221:5:7",
"typeDescriptions": {

@@ -437,3 +471,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -443,7 +476,8 @@ },

"constant": false,
"id": 3133,
"id": 3873,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "238:14:7",
"scope": 3884,
"src": "237:14:7",
"stateVariable": false,

@@ -456,6 +490,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3132,
"id": 3872,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "238:5:7",
"src": "237:5:7",
"typeDescriptions": {

@@ -466,3 +500,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -472,7 +505,8 @@ },

"constant": false,
"id": 3135,
"id": 3875,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "254:14:7",
"scope": 3884,
"src": "253:14:7",
"stateVariable": false,

@@ -485,6 +519,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3134,
"id": 3874,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "254:5:7",
"src": "253:5:7",
"typeDescriptions": {

@@ -495,10 +529,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "221:48:7"
"src": "220:48:7"
},
"returnParameters": {
"id": 3139,
"id": 3880,
"nodeType": "ParameterList",

@@ -508,7 +541,8 @@ "parameters": [

"constant": false,
"id": 3138,
"id": 3879,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3143,
"src": "293:4:7",
"scope": 3884,
"src": "301:4:7",
"stateVariable": false,

@@ -521,6 +555,6 @@ "storageLocation": "default",

"typeName": {
"id": 3137,
"id": 3878,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "293:4:7",
"src": "301:4:7",
"typeDescriptions": {

@@ -531,35 +565,46 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "292:6:7"
"src": "300:6:7"
},
"scope": 3144,
"src": "206:109:7",
"scope": 3885,
"src": "205:118:7",
"stateMutability": "view",
"superFunction": 3123,
"virtual": false,
"visibility": "external"
}
],
"scope": 3145,
"src": "163:154:7"
"scope": 3886,
"src": "162:163:7"
}
],
"src": "0:318:7"
"src": "0:326:7"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.384Z",
"networks": {
"1611767306216": {
"events": {},
"links": {},
"address": "0xe5c13c18a417859576a7FB42eBb427d0B1FBcb03",
"transactionHash": "0xb483ccc07a5b6f1d4f535f9deaf4b3f24082eaf8732a72a22e94db2c21ab736a"
}
},
"schemaVersion": "3.2.3",
"updatedAt": "2021-01-27T17:10:41.847Z",
"networkType": "ethereum",
"devdoc": {
"details": "Implements a dummy DNSSEC (signing) algorithm that approves all signatures, for testing.",
"methods": {}
"details": "Implements a dummy DNSSEC (signing) algorithm that approves all signatures, for testing.",
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "",

@@ -21,2 +22,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -26,42 +28,47 @@ "type": "bool"

],
"payable": false,
"stateMutability": "pure",
"type": "function"
"type": "function",
"constant": true
}
],
"bytecode": "0x608060405234801561001057600080fd5b50610173806100206000396000f3fe608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b60006001905094935050505056fea165627a7a7230582033ad3b642a0d5a4ab1e11aeb30e6faa00c1ca92b8548c70941edebccd9e9df420029",
"deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b60006001905094935050505056fea165627a7a7230582033ad3b642a0d5a4ab1e11aeb30e6faa00c1ca92b8548c70941edebccd9e9df420029",
"sourceMap": "136:132:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;136:132:13;;;;;;;",
"deployedSourceMap": "136:132:13:-;;;;;;;;;;;;;;;;;;;;;;;;173:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;173:93:13;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;173:93:13;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;173:93:13;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;173:93:13;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;173:93:13;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;173:93:13;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;173:93:13;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;173:93:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;244:4;259;252:11;;173:93;;;;;;:::o",
"source": "pragma solidity >0.4.23;\n\nimport \"./Digest.sol\";\n\n/**\n* @dev Implements a dummy DNSSEC digest that approves all hashes, for testing.\n*/\ncontract DummyDigest is Digest {\n function verify(bytes calldata, bytes calldata) external pure returns (bool) { return true; }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/digests/DummyDigest.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements a dummy DNSSEC digest that approves all hashes, for testing.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/DummyDigest.sol\":\"DummyDigest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol\":{\"keccak256\":\"0x10a3ed9231c6a7e16c5e673f8449f205c33df2a2cc4c09db0abac046abe6231e\",\"urls\":[\"bzz-raw://589c2266b6124c93c8410059d9f5902ca95d23a5e04961aa0c7489fcdc63e57c\",\"dweb:/ipfs/QmPKkuWhG6TtQXeEG5nTu8WukjeojqSMANqBgCFMf8fdnC\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/DummyDigest.sol\":{\"keccak256\":\"0x4c3600a806f35ed909c5afe32633bde6de9c4b49d50b5bff41a3e94245885c2a\",\"urls\":[\"bzz-raw://88957a1980eec187b4607e43526f568ad5277f6d93d8d5281a122801c9e0cb8e\",\"dweb:/ipfs/QmSarqg1yCiGBQujmnwPurcKQTauizqKcKhFzQyByZaGkM\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610158806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b60006001905094935050505056fea2646970667358221220de01b211e6459eef2ae0210aa79789708b96e700b61159444438b364056b06e964736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b60006001905094935050505056fea2646970667358221220de01b211e6459eef2ae0210aa79789708b96e700b61159444438b364056b06e964736f6c63430007040033",
"immutableReferences": {},
"sourceMap": "135:141:15:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "135:141:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;172:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;252:4;267;260:11;;172:102;;;;;;:::o",
"source": "pragma solidity ^0.7.4;\n\nimport \"./Digest.sol\";\n\n/**\n* @dev Implements a dummy DNSSEC digest that approves all hashes, for testing.\n*/\ncontract DummyDigest is Digest {\n function verify(bytes calldata, bytes calldata) external override pure returns (bool) { return true; }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/DummyDigest.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/DummyDigest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/DummyDigest.sol",
"exportedSymbols": {
"Digest": [
5741
],
"DummyDigest": [
3557
5761
]
},
"id": 3558,
"id": 5762,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3541,
"id": 5743,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:13"
"src": "0:23:15"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3542,
"id": 5744,
"nodeType": "ImportDirective",
"scope": 3558,
"sourceUnit": 3540,
"src": "26:22:13",
"scope": 5762,
"sourceUnit": 5742,
"src": "25:22:15",
"symbolAliases": [],

@@ -71,32 +78,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3543,
"id": 5746,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3539,
"src": "160:6:13",
"referencedDeclaration": 5741,
"src": "159:6:15",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$3539",
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 3544,
"id": 5747,
"nodeType": "InheritanceSpecifier",
"src": "160:6:13"
"src": "159:6:15"
}
],
"contractDependencies": [
3539
5741
],
"contractKind": "contract",
"documentation": "@dev Implements a dummy DNSSEC digest that approves all hashes, for testing.",
"documentation": {
"id": 5745,
"nodeType": "StructuredDocumentation",
"src": "49:85:15",
"text": " @dev Implements a dummy DNSSEC digest that approves all hashes, for testing."
},
"fullyImplemented": true,
"id": 3557,
"id": 5761,
"linearizedBaseContracts": [
3557,
3539
5761,
5741
],

@@ -107,12 +118,14 @@ "name": "DummyDigest",

{
"baseFunctions": [
5740
],
"body": {
"id": 3555,
"id": 5759,
"nodeType": "Block",
"src": "250:16:13",
"src": "258:16:15",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3553,
"id": 5757,
"isConstant": false,

@@ -124,4 +137,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "259:4:13",
"subdenomination": null,
"src": "267:4:15",
"typeDescriptions": {

@@ -133,11 +145,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3552,
"id": 3554,
"functionReturnParameters": 5756,
"id": 5758,
"nodeType": "Return",
"src": "252:11:13"
"src": "260:11:15"
}
]
},
"documentation": null,
"id": 3556,
"functionSelector": "f7e83aee",
"id": 5760,
"implemented": true,

@@ -148,4 +160,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5753,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "229:8:15"
},
"parameters": {
"id": 3549,
"id": 5752,
"nodeType": "ParameterList",

@@ -155,7 +173,8 @@ "parameters": [

"constant": false,
"id": 3546,
"id": 5749,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "189:14:13",
"scope": 5760,
"src": "188:14:15",
"stateVariable": false,

@@ -168,6 +187,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3545,
"id": 5748,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "189:5:13",
"src": "188:5:15",
"typeDescriptions": {

@@ -178,3 +197,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -184,7 +202,8 @@ },

"constant": false,
"id": 3548,
"id": 5751,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "205:14:13",
"scope": 5760,
"src": "204:14:15",
"stateVariable": false,

@@ -197,6 +216,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3547,
"id": 5750,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "205:5:13",
"src": "204:5:15",
"typeDescriptions": {

@@ -207,10 +226,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "188:32:13"
"src": "187:32:15"
},
"returnParameters": {
"id": 3552,
"id": 5756,
"nodeType": "ParameterList",

@@ -220,7 +238,8 @@ "parameters": [

"constant": false,
"id": 3551,
"id": 5755,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "244:4:13",
"scope": 5760,
"src": "252:4:15",
"stateVariable": false,

@@ -233,6 +252,6 @@ "storageLocation": "default",

"typeName": {
"id": 3550,
"id": 5754,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "244:4:13",
"src": "252:4:15",
"typeDescriptions": {

@@ -243,50 +262,52 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "243:6:13"
"src": "251:6:15"
},
"scope": 3557,
"src": "173:93:13",
"scope": 5761,
"src": "172:102:15",
"stateMutability": "pure",
"superFunction": 3538,
"virtual": false,
"visibility": "external"
}
],
"scope": 3558,
"src": "136:132:13"
"scope": 5762,
"src": "135:141:15"
}
],
"src": "0:269:13"
"src": "0:277:15"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/DummyDigest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/DummyDigest.sol",
"exportedSymbols": {
"Digest": [
5741
],
"DummyDigest": [
3557
5761
]
},
"id": 3558,
"id": 5762,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3541,
"id": 5743,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:13"
"src": "0:23:15"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3542,
"id": 5744,
"nodeType": "ImportDirective",
"scope": 3558,
"sourceUnit": 3540,
"src": "26:22:13",
"scope": 5762,
"sourceUnit": 5742,
"src": "25:22:15",
"symbolAliases": [],

@@ -296,32 +317,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3543,
"id": 5746,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3539,
"src": "160:6:13",
"referencedDeclaration": 5741,
"src": "159:6:15",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$3539",
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 3544,
"id": 5747,
"nodeType": "InheritanceSpecifier",
"src": "160:6:13"
"src": "159:6:15"
}
],
"contractDependencies": [
3539
5741
],
"contractKind": "contract",
"documentation": "@dev Implements a dummy DNSSEC digest that approves all hashes, for testing.",
"documentation": {
"id": 5745,
"nodeType": "StructuredDocumentation",
"src": "49:85:15",
"text": " @dev Implements a dummy DNSSEC digest that approves all hashes, for testing."
},
"fullyImplemented": true,
"id": 3557,
"id": 5761,
"linearizedBaseContracts": [
3557,
3539
5761,
5741
],

@@ -332,12 +357,14 @@ "name": "DummyDigest",

{
"baseFunctions": [
5740
],
"body": {
"id": 3555,
"id": 5759,
"nodeType": "Block",
"src": "250:16:13",
"src": "258:16:15",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 3553,
"id": 5757,
"isConstant": false,

@@ -349,4 +376,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "259:4:13",
"subdenomination": null,
"src": "267:4:15",
"typeDescriptions": {

@@ -358,11 +384,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3552,
"id": 3554,
"functionReturnParameters": 5756,
"id": 5758,
"nodeType": "Return",
"src": "252:11:13"
"src": "260:11:15"
}
]
},
"documentation": null,
"id": 3556,
"functionSelector": "f7e83aee",
"id": 5760,
"implemented": true,

@@ -373,4 +399,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5753,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "229:8:15"
},
"parameters": {
"id": 3549,
"id": 5752,
"nodeType": "ParameterList",

@@ -380,7 +412,8 @@ "parameters": [

"constant": false,
"id": 3546,
"id": 5749,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "189:14:13",
"scope": 5760,
"src": "188:14:15",
"stateVariable": false,

@@ -393,6 +426,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3545,
"id": 5748,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "189:5:13",
"src": "188:5:15",
"typeDescriptions": {

@@ -403,3 +436,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -409,7 +441,8 @@ },

"constant": false,
"id": 3548,
"id": 5751,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "205:14:13",
"scope": 5760,
"src": "204:14:15",
"stateVariable": false,

@@ -422,6 +455,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3547,
"id": 5750,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "205:5:13",
"src": "204:5:15",
"typeDescriptions": {

@@ -432,10 +465,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "188:32:13"
"src": "187:32:15"
},
"returnParameters": {
"id": 3552,
"id": 5756,
"nodeType": "ParameterList",

@@ -445,7 +477,8 @@ "parameters": [

"constant": false,
"id": 3551,
"id": 5755,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3556,
"src": "244:4:13",
"scope": 5760,
"src": "252:4:15",
"stateVariable": false,

@@ -458,6 +491,6 @@ "storageLocation": "default",

"typeName": {
"id": 3550,
"id": 5754,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "244:4:13",
"src": "252:4:15",
"typeDescriptions": {

@@ -468,35 +501,46 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "243:6:13"
"src": "251:6:15"
},
"scope": 3557,
"src": "173:93:13",
"scope": 5761,
"src": "172:102:15",
"stateMutability": "pure",
"superFunction": 3538,
"virtual": false,
"visibility": "external"
}
],
"scope": 3558,
"src": "136:132:13"
"scope": 5762,
"src": "135:141:15"
}
],
"src": "0:269:13"
"src": "0:277:15"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.377Z",
"networks": {
"1611767306216": {
"events": {},
"links": {},
"address": "0xa62381b639DE7Ccf819F26A46070e31fCf92c6ae",
"transactionHash": "0x89df79f1685346a5a879f248c21c40a5141edf667ee84ed32b3cde9339dbcb10"
}
},
"schemaVersion": "3.2.3",
"updatedAt": "2021-01-27T17:10:41.848Z",
"networkType": "ethereum",
"devdoc": {
"details": "Implements a dummy DNSSEC digest that approves all hashes, for testing.",
"methods": {}
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,7 +5,12 @@ {

{
"constant": true,
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "last_completed_migration",
"outputs": [
{
"internalType": "uint256",
"name": "",

@@ -15,8 +20,7 @@ "type": "uint256"

],
"payable": false,
"stateMutability": "view",
"type": "function"
"type": "function",
"constant": true
},
{
"constant": true,
"inputs": [],

@@ -26,2 +30,3 @@ "name": "owner",

{
"internalType": "address",
"name": "",

@@ -31,16 +36,10 @@ "type": "address"

],
"payable": false,
"stateMutability": "view",
"type": "function"
"type": "function",
"constant": true
},
{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "completed",

@@ -52,3 +51,2 @@ "type": "uint256"

"outputs": [],
"payable": false,
"stateMutability": "nonpayable",

@@ -58,5 +56,5 @@ "type": "function"

{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newAddress",

@@ -68,3 +66,2 @@ "type": "address"

"outputs": [],
"payable": false,
"stateMutability": "nonpayable",

@@ -74,38 +71,40 @@ "type": "function"

],
"bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610314806100606000396000f3fe608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100b85780638da5cb5b146100e3578063fdacd5761461013a575b600080fd5b34801561007357600080fd5b506100b66004803603602081101561008a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610175565b005b3480156100c457600080fd5b506100cd61025d565b6040518082815260200191505060405180910390f35b3480156100ef57600080fd5b506100f8610263565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610288565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025a5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561024057600080fd5b505af1158015610254573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102e557806001819055505b5056fea165627a7a723058208580d3f763ef2964ce902711df91e0e446629132ffd6f8ef04c318548d9d58c00029",
"deployedBytecode": "0x608060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100b85780638da5cb5b146100e3578063fdacd5761461013a575b600080fd5b34801561007357600080fd5b506100b66004803603602081101561008a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610175565b005b3480156100c457600080fd5b506100cd61025d565b6040518082815260200191505060405180910390f35b3480156100ef57600080fd5b506100f8610263565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561014657600080fd5b506101736004803603602081101561015d57600080fd5b8101908080359060200190929190505050610288565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561025a5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b15801561024057600080fd5b505af1158015610254573d6000803e3d6000fd5b50505050505b50565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102e557806001819055505b5056fea165627a7a723058208580d3f763ef2964ce902711df91e0e446629132ffd6f8ef04c318548d9d58c00029",
"sourceMap": "26:530:3:-;;;204:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;204:56:3;243:10;235:5;;:18;;;;;;;;;;;;;;;;;;26:530;;;;;;",
"deployedSourceMap": "26:530:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;381:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;381:173:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;381:173:3;;;;;;;;;;;;;;;;;;;;;;78:36;;8:9:-1;5:2;;;30:1;27;20:12;5:2;78:36:3;;;;;;;;;;;;;;;;;;;;;;;52:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;52:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;266:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;266:109:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;266:109:3;;;;;;;;;;;;;;;;;;;;381:173;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:38;;;446:19;479:10;446:44;;500:8;:21;;;522:24;;500:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;500:47:3;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;500:47:3;;;;190:1;153:38;381:173;:::o;78:36::-;;;;:::o;52:20::-;;;;;;;;;;;;;:::o;266:109::-;171:5;;;;;;;;;;;157:19;;:10;:19;;;153:38;;;359:9;332:24;:36;;;;153:38;266:109;:::o",
"source": "pragma solidity >0.4.23;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner)\n _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/Migrations.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/Migrations.sol\":{\"keccak256\":\"0x91f737f20b552dfc50350f64164920f827920eba5fd3cade9ec94c98c9d0bd58\",\"urls\":[\"bzz-raw://9ee5c4d5043d02c6f848dacc6599eeafc98f1a65c7790f324a13147087ea47e7\",\"dweb:/ipfs/QmTUAv2eoqnUWRdE621AmXoHm4Yi398fJ5cdHEuK9DsgXj\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061029f806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100e7575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610115565b005b61009d6101e0565b6040518082815260200191505060405180910390f35b6100bb6101e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610113600480360360208110156100fd57600080fd5b810190808035906020019092919050505061020a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101dd5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b50505050505b50565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026657806001819055505b5056fea2646970667358221220fca81801b299c6afe08d82a14ec0383730e567cf5dff909990b05f8bd7ad706c64736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100e7575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610115565b005b61009d6101e0565b6040518082815260200191505060405180910390f35b6100bb6101e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610113600480360360208110156100fd57600080fd5b810190808035906020019092919050505061020a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101dd5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b50505050505b50565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026657806001819055505b5056fea2646970667358221220fca81801b299c6afe08d82a14ec0383730e567cf5dff909990b05f8bd7ad706c64736f6c63430007040033",
"immutableReferences": {},
"sourceMap": "25:530:3:-:0;;;203:56;;;;;;;;;;242:10;234:5;;:18;;;;;;;;;;;;;;;;;;25:530;;;;;;",
"deployedSourceMap": "25:530:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;380:173;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;77:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;51:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;265:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;380:173;170:5;;;;;;;;;;156:19;;:10;:19;;;152:38;;;445:19:::1;478:10;445:44;;499:8;:21;;;521:24;;499:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;189:1;152:38:::0;380:173;:::o;77:36::-;;;;:::o;51:20::-;;;;;;;;;;;;:::o;265:109::-;170:5;;;;;;;;;;156:19;;:10;:19;;;152:38;;;358:9:::1;331:24;:36;;;;152:38:::0;265:109;:::o",
"source": "pragma solidity ^0.7.4;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner)\n _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Migrations.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/Migrations.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Migrations.sol",
"exportedSymbols": {
"Migrations": [
2452
2686
]
},
"id": 2453,
"id": 2687,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2397,
"id": 2631,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:3"
"src": "0:23:3"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 2452,
"id": 2686,
"linearizedBaseContracts": [
2452
2686
],

@@ -117,7 +116,9 @@ "name": "Migrations",

"constant": false,
"id": 2399,
"functionSelector": "8da5cb5b",
"id": 2633,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 2452,
"src": "52:20:3",
"scope": 2686,
"src": "51:20:3",
"stateVariable": true,

@@ -130,6 +131,6 @@ "storageLocation": "default",

"typeName": {
"id": 2398,
"id": 2632,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "52:7:3",
"src": "51:7:3",
"stateMutability": "nonpayable",

@@ -141,3 +142,2 @@ "typeDescriptions": {

},
"value": null,
"visibility": "public"

@@ -147,7 +147,9 @@ },

"constant": false,
"id": 2401,
"functionSelector": "445df0ac",
"id": 2635,
"mutability": "mutable",
"name": "last_completed_migration",
"nodeType": "VariableDeclaration",
"scope": 2452,
"src": "78:36:3",
"scope": 2686,
"src": "77:36:3",
"stateVariable": true,

@@ -160,6 +162,6 @@ "storageLocation": "default",

"typeName": {
"id": 2400,
"id": 2634,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "78:4:3",
"src": "77:4:3",
"typeDescriptions": {

@@ -170,3 +172,2 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "public"

@@ -176,9 +177,8 @@ },

"body": {
"id": 2409,
"id": 2643,
"nodeType": "Block",
"src": "143:55:3",
"src": "142:55:3",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {

@@ -188,3 +188,3 @@ "typeIdentifier": "t_address",

},
"id": 2406,
"id": 2640,
"isConstant": false,

@@ -195,11 +195,9 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2403,
"id": 2637,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "157:3:3",
"referencedDeclaration": -15,
"src": "156:3:3",
"typeDescriptions": {

@@ -210,3 +208,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2404,
"id": 2638,
"isConstant": false,

@@ -218,4 +216,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "157:10:3",
"src": "156:10:3",
"typeDescriptions": {

@@ -229,9 +226,8 @@ "typeIdentifier": "t_address_payable",

"rightExpression": {
"argumentTypes": null,
"id": 2405,
"id": 2639,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2399,
"src": "171:5:3",
"referencedDeclaration": 2633,
"src": "170:5:3",
"typeDescriptions": {

@@ -242,3 +238,3 @@ "typeIdentifier": "t_address",

},
"src": "157:19:3",
"src": "156:19:3",
"typeDescriptions": {

@@ -249,10 +245,9 @@ "typeIdentifier": "t_bool",

},
"falseBody": null,
"id": 2408,
"id": 2642,
"nodeType": "IfStatement",
"src": "153:38:3",
"src": "152:38:3",
"trueBody": {
"id": 2407,
"id": 2641,
"nodeType": "PlaceholderStatement",
"src": "190:1:3"
"src": "189:1:3"
}

@@ -262,13 +257,13 @@ }

},
"documentation": null,
"id": 2410,
"id": 2644,
"name": "restricted",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 2402,
"id": 2636,
"nodeType": "ParameterList",
"parameters": [],
"src": "140:2:3"
"src": "139:2:3"
},
"src": "121:77:3",
"src": "120:77:3",
"virtual": false,
"visibility": "internal"

@@ -278,10 +273,9 @@ },

"body": {
"id": 2418,
"id": 2652,
"nodeType": "Block",
"src": "225:35:3",
"src": "224:35:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2416,
"id": 2650,
"isConstant": false,

@@ -292,9 +286,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2413,
"id": 2647,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2399,
"src": "235:5:3",
"referencedDeclaration": 2633,
"src": "234:5:3",
"typeDescriptions": {

@@ -308,11 +301,9 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2414,
"id": 2648,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "243:3:3",
"referencedDeclaration": -15,
"src": "242:3:3",
"typeDescriptions": {

@@ -323,3 +314,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2415,
"id": 2649,
"isConstant": false,

@@ -331,4 +322,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "243:10:3",
"src": "242:10:3",
"typeDescriptions": {

@@ -339,3 +329,3 @@ "typeIdentifier": "t_address_payable",

},
"src": "235:18:3",
"src": "234:18:3",
"typeDescriptions": {

@@ -346,10 +336,9 @@ "typeIdentifier": "t_address",

},
"id": 2417,
"id": 2651,
"nodeType": "ExpressionStatement",
"src": "235:18:3"
"src": "234:18:3"
}
]
},
"documentation": null,
"id": 2419,
"id": 2653,
"implemented": true,

@@ -361,17 +350,17 @@ "kind": "constructor",

"parameters": {
"id": 2411,
"id": 2645,
"nodeType": "ParameterList",
"parameters": [],
"src": "215:2:3"
"src": "214:2:3"
},
"returnParameters": {
"id": 2412,
"id": 2646,
"nodeType": "ParameterList",
"parameters": [],
"src": "225:0:3"
"src": "224:0:3"
},
"scope": 2452,
"src": "204:56:3",
"scope": 2686,
"src": "203:56:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -381,10 +370,9 @@ },

"body": {
"id": 2430,
"id": 2664,
"nodeType": "Block",
"src": "322:53:3",
"src": "321:53:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2428,
"id": 2662,
"isConstant": false,

@@ -395,9 +383,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2426,
"id": 2660,
"name": "last_completed_migration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2401,
"src": "332:24:3",
"referencedDeclaration": 2635,
"src": "331:24:3",
"typeDescriptions": {

@@ -411,9 +398,8 @@ "typeIdentifier": "t_uint256",

"rightHandSide": {
"argumentTypes": null,
"id": 2427,
"id": 2661,
"name": "completed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2421,
"src": "359:9:3",
"referencedDeclaration": 2655,
"src": "358:9:3",
"typeDescriptions": {

@@ -424,3 +410,3 @@ "typeIdentifier": "t_uint256",

},
"src": "332:36:3",
"src": "331:36:3",
"typeDescriptions": {

@@ -431,10 +417,10 @@ "typeIdentifier": "t_uint256",

},
"id": 2429,
"id": 2663,
"nodeType": "ExpressionStatement",
"src": "332:36:3"
"src": "331:36:3"
}
]
},
"documentation": null,
"id": 2431,
"functionSelector": "fdacd576",
"id": 2665,
"implemented": true,

@@ -444,12 +430,10 @@ "kind": "function",

{
"arguments": null,
"id": 2424,
"id": 2658,
"modifierName": {
"argumentTypes": null,
"id": 2423,
"id": 2657,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2410,
"src": "311:10:3",
"referencedDeclaration": 2644,
"src": "310:10:3",
"typeDescriptions": {

@@ -461,3 +445,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "311:10:3"
"src": "310:10:3"
}

@@ -468,3 +452,3 @@ ],

"parameters": {
"id": 2422,
"id": 2656,
"nodeType": "ParameterList",

@@ -474,7 +458,8 @@ "parameters": [

"constant": false,
"id": 2421,
"id": 2655,
"mutability": "mutable",
"name": "completed",
"nodeType": "VariableDeclaration",
"scope": 2431,
"src": "288:14:3",
"scope": 2665,
"src": "287:14:3",
"stateVariable": false,

@@ -487,6 +472,6 @@ "storageLocation": "default",

"typeName": {
"id": 2420,
"id": 2654,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "288:4:3",
"src": "287:4:3",
"typeDescriptions": {

@@ -497,18 +482,17 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "internal"
}
],
"src": "287:16:3"
"src": "286:16:3"
},
"returnParameters": {
"id": 2425,
"id": 2659,
"nodeType": "ParameterList",
"parameters": [],
"src": "322:0:3"
"src": "321:0:3"
},
"scope": 2452,
"src": "266:109:3",
"scope": 2686,
"src": "265:109:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -518,9 +502,9 @@ },

"body": {
"id": 2450,
"id": 2684,
"nodeType": "Block",
"src": "436:118:3",
"src": "435:118:3",
"statements": [
{
"assignments": [
2439
2673
],

@@ -530,41 +514,38 @@ "declarations": [

"constant": false,
"id": 2439,
"id": 2673,
"mutability": "mutable",
"name": "upgraded",
"nodeType": "VariableDeclaration",
"scope": 2450,
"src": "446:19:3",
"scope": 2684,
"src": "445:19:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
},
"typeName": {
"contractScope": null,
"id": 2438,
"id": 2672,
"name": "Migrations",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2452,
"src": "446:10:3",
"referencedDeclaration": 2686,
"src": "445:10:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2443,
"id": 2677,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2441,
"id": 2675,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2433,
"src": "479:10:3",
"referencedDeclaration": 2667,
"src": "478:10:3",
"typeDescriptions": {

@@ -583,14 +564,14 @@ "typeIdentifier": "t_address",

],
"id": 2440,
"id": 2674,
"name": "Migrations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2452,
"src": "468:10:3",
"referencedDeclaration": 2686,
"src": "467:10:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Migrations_$2452_$",
"typeIdentifier": "t_type$_t_contract$_Migrations_$2686_$",
"typeString": "type(contract Migrations)"
}
},
"id": 2442,
"id": 2676,
"isConstant": false,

@@ -603,5 +584,6 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "468:22:3",
"src": "467:22:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"

@@ -611,16 +593,14 @@ }

"nodeType": "VariableDeclarationStatement",
"src": "446:44:3"
"src": "445:44:3"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2447,
"id": 2681,
"name": "last_completed_migration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2401,
"src": "522:24:3",
"referencedDeclaration": 2635,
"src": "521:24:3",
"typeDescriptions": {

@@ -640,15 +620,14 @@ "typeIdentifier": "t_uint256",

"expression": {
"argumentTypes": null,
"id": 2444,
"id": 2678,
"name": "upgraded",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2439,
"src": "500:8:3",
"referencedDeclaration": 2673,
"src": "499:8:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
}
},
"id": 2446,
"id": 2680,
"isConstant": false,

@@ -660,4 +639,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 2431,
"src": "500:21:3",
"referencedDeclaration": 2665,
"src": "499:21:3",
"typeDescriptions": {

@@ -668,3 +647,3 @@ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",

},
"id": 2448,
"id": 2682,
"isConstant": false,

@@ -677,3 +656,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "500:47:3",
"src": "499:47:3",
"tryCall": false,
"typeDescriptions": {

@@ -684,10 +664,10 @@ "typeIdentifier": "t_tuple$__$",

},
"id": 2449,
"id": 2683,
"nodeType": "ExpressionStatement",
"src": "500:47:3"
"src": "499:47:3"
}
]
},
"documentation": null,
"id": 2451,
"functionSelector": "0900f010",
"id": 2685,
"implemented": true,

@@ -697,12 +677,10 @@ "kind": "function",

{
"arguments": null,
"id": 2436,
"id": 2670,
"modifierName": {
"argumentTypes": null,
"id": 2435,
"id": 2669,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2410,
"src": "425:10:3",
"referencedDeclaration": 2644,
"src": "424:10:3",
"typeDescriptions": {

@@ -714,3 +692,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "425:10:3"
"src": "424:10:3"
}

@@ -721,3 +699,3 @@ ],

"parameters": {
"id": 2434,
"id": 2668,
"nodeType": "ParameterList",

@@ -727,7 +705,8 @@ "parameters": [

"constant": false,
"id": 2433,
"id": 2667,
"mutability": "mutable",
"name": "newAddress",
"nodeType": "VariableDeclaration",
"scope": 2451,
"src": "398:18:3",
"scope": 2685,
"src": "397:18:3",
"stateVariable": false,

@@ -740,6 +719,6 @@ "storageLocation": "default",

"typeName": {
"id": 2432,
"id": 2666,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:3",
"src": "397:7:3",
"stateMutability": "nonpayable",

@@ -751,57 +730,56 @@ "typeDescriptions": {

},
"value": null,
"visibility": "internal"
}
],
"src": "397:20:3"
"src": "396:20:3"
},
"returnParameters": {
"id": 2437,
"id": 2671,
"nodeType": "ParameterList",
"parameters": [],
"src": "436:0:3"
"src": "435:0:3"
},
"scope": 2452,
"src": "381:173:3",
"scope": 2686,
"src": "380:173:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"
}
],
"scope": 2453,
"src": "26:530:3"
"scope": 2687,
"src": "25:530:3"
}
],
"src": "0:557:3"
"src": "0:556:3"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/Migrations.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Migrations.sol",
"exportedSymbols": {
"Migrations": [
2452
2686
]
},
"id": 2453,
"id": 2687,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2397,
"id": 2631,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:3"
"src": "0:23:3"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": null,
"fullyImplemented": true,
"id": 2452,
"id": 2686,
"linearizedBaseContracts": [
2452
2686
],

@@ -813,7 +791,9 @@ "name": "Migrations",

"constant": false,
"id": 2399,
"functionSelector": "8da5cb5b",
"id": 2633,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 2452,
"src": "52:20:3",
"scope": 2686,
"src": "51:20:3",
"stateVariable": true,

@@ -826,6 +806,6 @@ "storageLocation": "default",

"typeName": {
"id": 2398,
"id": 2632,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "52:7:3",
"src": "51:7:3",
"stateMutability": "nonpayable",

@@ -837,3 +817,2 @@ "typeDescriptions": {

},
"value": null,
"visibility": "public"

@@ -843,7 +822,9 @@ },

"constant": false,
"id": 2401,
"functionSelector": "445df0ac",
"id": 2635,
"mutability": "mutable",
"name": "last_completed_migration",
"nodeType": "VariableDeclaration",
"scope": 2452,
"src": "78:36:3",
"scope": 2686,
"src": "77:36:3",
"stateVariable": true,

@@ -856,6 +837,6 @@ "storageLocation": "default",

"typeName": {
"id": 2400,
"id": 2634,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "78:4:3",
"src": "77:4:3",
"typeDescriptions": {

@@ -866,3 +847,2 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "public"

@@ -872,9 +852,8 @@ },

"body": {
"id": 2409,
"id": 2643,
"nodeType": "Block",
"src": "143:55:3",
"src": "142:55:3",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {

@@ -884,3 +863,3 @@ "typeIdentifier": "t_address",

},
"id": 2406,
"id": 2640,
"isConstant": false,

@@ -891,11 +870,9 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2403,
"id": 2637,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "157:3:3",
"referencedDeclaration": -15,
"src": "156:3:3",
"typeDescriptions": {

@@ -906,3 +883,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2404,
"id": 2638,
"isConstant": false,

@@ -914,4 +891,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "157:10:3",
"src": "156:10:3",
"typeDescriptions": {

@@ -925,9 +901,8 @@ "typeIdentifier": "t_address_payable",

"rightExpression": {
"argumentTypes": null,
"id": 2405,
"id": 2639,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2399,
"src": "171:5:3",
"referencedDeclaration": 2633,
"src": "170:5:3",
"typeDescriptions": {

@@ -938,3 +913,3 @@ "typeIdentifier": "t_address",

},
"src": "157:19:3",
"src": "156:19:3",
"typeDescriptions": {

@@ -945,10 +920,9 @@ "typeIdentifier": "t_bool",

},
"falseBody": null,
"id": 2408,
"id": 2642,
"nodeType": "IfStatement",
"src": "153:38:3",
"src": "152:38:3",
"trueBody": {
"id": 2407,
"id": 2641,
"nodeType": "PlaceholderStatement",
"src": "190:1:3"
"src": "189:1:3"
}

@@ -958,13 +932,13 @@ }

},
"documentation": null,
"id": 2410,
"id": 2644,
"name": "restricted",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 2402,
"id": 2636,
"nodeType": "ParameterList",
"parameters": [],
"src": "140:2:3"
"src": "139:2:3"
},
"src": "121:77:3",
"src": "120:77:3",
"virtual": false,
"visibility": "internal"

@@ -974,10 +948,9 @@ },

"body": {
"id": 2418,
"id": 2652,
"nodeType": "Block",
"src": "225:35:3",
"src": "224:35:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2416,
"id": 2650,
"isConstant": false,

@@ -988,9 +961,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2413,
"id": 2647,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2399,
"src": "235:5:3",
"referencedDeclaration": 2633,
"src": "234:5:3",
"typeDescriptions": {

@@ -1004,11 +976,9 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2414,
"id": 2648,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "243:3:3",
"referencedDeclaration": -15,
"src": "242:3:3",
"typeDescriptions": {

@@ -1019,3 +989,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2415,
"id": 2649,
"isConstant": false,

@@ -1027,4 +997,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "243:10:3",
"src": "242:10:3",
"typeDescriptions": {

@@ -1035,3 +1004,3 @@ "typeIdentifier": "t_address_payable",

},
"src": "235:18:3",
"src": "234:18:3",
"typeDescriptions": {

@@ -1042,10 +1011,9 @@ "typeIdentifier": "t_address",

},
"id": 2417,
"id": 2651,
"nodeType": "ExpressionStatement",
"src": "235:18:3"
"src": "234:18:3"
}
]
},
"documentation": null,
"id": 2419,
"id": 2653,
"implemented": true,

@@ -1057,17 +1025,17 @@ "kind": "constructor",

"parameters": {
"id": 2411,
"id": 2645,
"nodeType": "ParameterList",
"parameters": [],
"src": "215:2:3"
"src": "214:2:3"
},
"returnParameters": {
"id": 2412,
"id": 2646,
"nodeType": "ParameterList",
"parameters": [],
"src": "225:0:3"
"src": "224:0:3"
},
"scope": 2452,
"src": "204:56:3",
"scope": 2686,
"src": "203:56:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -1077,10 +1045,9 @@ },

"body": {
"id": 2430,
"id": 2664,
"nodeType": "Block",
"src": "322:53:3",
"src": "321:53:3",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2428,
"id": 2662,
"isConstant": false,

@@ -1091,9 +1058,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2426,
"id": 2660,
"name": "last_completed_migration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2401,
"src": "332:24:3",
"referencedDeclaration": 2635,
"src": "331:24:3",
"typeDescriptions": {

@@ -1107,9 +1073,8 @@ "typeIdentifier": "t_uint256",

"rightHandSide": {
"argumentTypes": null,
"id": 2427,
"id": 2661,
"name": "completed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2421,
"src": "359:9:3",
"referencedDeclaration": 2655,
"src": "358:9:3",
"typeDescriptions": {

@@ -1120,3 +1085,3 @@ "typeIdentifier": "t_uint256",

},
"src": "332:36:3",
"src": "331:36:3",
"typeDescriptions": {

@@ -1127,10 +1092,10 @@ "typeIdentifier": "t_uint256",

},
"id": 2429,
"id": 2663,
"nodeType": "ExpressionStatement",
"src": "332:36:3"
"src": "331:36:3"
}
]
},
"documentation": null,
"id": 2431,
"functionSelector": "fdacd576",
"id": 2665,
"implemented": true,

@@ -1140,12 +1105,10 @@ "kind": "function",

{
"arguments": null,
"id": 2424,
"id": 2658,
"modifierName": {
"argumentTypes": null,
"id": 2423,
"id": 2657,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2410,
"src": "311:10:3",
"referencedDeclaration": 2644,
"src": "310:10:3",
"typeDescriptions": {

@@ -1157,3 +1120,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "311:10:3"
"src": "310:10:3"
}

@@ -1164,3 +1127,3 @@ ],

"parameters": {
"id": 2422,
"id": 2656,
"nodeType": "ParameterList",

@@ -1170,7 +1133,8 @@ "parameters": [

"constant": false,
"id": 2421,
"id": 2655,
"mutability": "mutable",
"name": "completed",
"nodeType": "VariableDeclaration",
"scope": 2431,
"src": "288:14:3",
"scope": 2665,
"src": "287:14:3",
"stateVariable": false,

@@ -1183,6 +1147,6 @@ "storageLocation": "default",

"typeName": {
"id": 2420,
"id": 2654,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "288:4:3",
"src": "287:4:3",
"typeDescriptions": {

@@ -1193,18 +1157,17 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "internal"
}
],
"src": "287:16:3"
"src": "286:16:3"
},
"returnParameters": {
"id": 2425,
"id": 2659,
"nodeType": "ParameterList",
"parameters": [],
"src": "322:0:3"
"src": "321:0:3"
},
"scope": 2452,
"src": "266:109:3",
"scope": 2686,
"src": "265:109:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -1214,9 +1177,9 @@ },

"body": {
"id": 2450,
"id": 2684,
"nodeType": "Block",
"src": "436:118:3",
"src": "435:118:3",
"statements": [
{
"assignments": [
2439
2673
],

@@ -1226,41 +1189,38 @@ "declarations": [

"constant": false,
"id": 2439,
"id": 2673,
"mutability": "mutable",
"name": "upgraded",
"nodeType": "VariableDeclaration",
"scope": 2450,
"src": "446:19:3",
"scope": 2684,
"src": "445:19:3",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
},
"typeName": {
"contractScope": null,
"id": 2438,
"id": 2672,
"name": "Migrations",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 2452,
"src": "446:10:3",
"referencedDeclaration": 2686,
"src": "445:10:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 2443,
"id": 2677,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2441,
"id": 2675,
"name": "newAddress",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2433,
"src": "479:10:3",
"referencedDeclaration": 2667,
"src": "478:10:3",
"typeDescriptions": {

@@ -1279,14 +1239,14 @@ "typeIdentifier": "t_address",

],
"id": 2440,
"id": 2674,
"name": "Migrations",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2452,
"src": "468:10:3",
"referencedDeclaration": 2686,
"src": "467:10:3",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Migrations_$2452_$",
"typeIdentifier": "t_type$_t_contract$_Migrations_$2686_$",
"typeString": "type(contract Migrations)"
}
},
"id": 2442,
"id": 2676,
"isConstant": false,

@@ -1299,5 +1259,6 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "468:22:3",
"src": "467:22:3",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"

@@ -1307,16 +1268,14 @@ }

"nodeType": "VariableDeclarationStatement",
"src": "446:44:3"
"src": "445:44:3"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 2447,
"id": 2681,
"name": "last_completed_migration",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2401,
"src": "522:24:3",
"referencedDeclaration": 2635,
"src": "521:24:3",
"typeDescriptions": {

@@ -1336,15 +1295,14 @@ "typeIdentifier": "t_uint256",

"expression": {
"argumentTypes": null,
"id": 2444,
"id": 2678,
"name": "upgraded",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2439,
"src": "500:8:3",
"referencedDeclaration": 2673,
"src": "499:8:3",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Migrations_$2452",
"typeIdentifier": "t_contract$_Migrations_$2686",
"typeString": "contract Migrations"
}
},
"id": 2446,
"id": 2680,
"isConstant": false,

@@ -1356,4 +1314,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 2431,
"src": "500:21:3",
"referencedDeclaration": 2665,
"src": "499:21:3",
"typeDescriptions": {

@@ -1364,3 +1322,3 @@ "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",

},
"id": 2448,
"id": 2682,
"isConstant": false,

@@ -1373,3 +1331,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "500:47:3",
"src": "499:47:3",
"tryCall": false,
"typeDescriptions": {

@@ -1380,10 +1339,10 @@ "typeIdentifier": "t_tuple$__$",

},
"id": 2449,
"id": 2683,
"nodeType": "ExpressionStatement",
"src": "500:47:3"
"src": "499:47:3"
}
]
},
"documentation": null,
"id": 2451,
"functionSelector": "0900f010",
"id": 2685,
"implemented": true,

@@ -1393,12 +1352,10 @@ "kind": "function",

{
"arguments": null,
"id": 2436,
"id": 2670,
"modifierName": {
"argumentTypes": null,
"id": 2435,
"id": 2669,
"name": "restricted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2410,
"src": "425:10:3",
"referencedDeclaration": 2644,
"src": "424:10:3",
"typeDescriptions": {

@@ -1410,3 +1367,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "425:10:3"
"src": "424:10:3"
}

@@ -1417,3 +1374,3 @@ ],

"parameters": {
"id": 2434,
"id": 2668,
"nodeType": "ParameterList",

@@ -1423,7 +1380,8 @@ "parameters": [

"constant": false,
"id": 2433,
"id": 2667,
"mutability": "mutable",
"name": "newAddress",
"nodeType": "VariableDeclaration",
"scope": 2451,
"src": "398:18:3",
"scope": 2685,
"src": "397:18:3",
"stateVariable": false,

@@ -1436,6 +1394,6 @@ "storageLocation": "default",

"typeName": {
"id": 2432,
"id": 2666,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "398:7:3",
"src": "397:7:3",
"stateMutability": "nonpayable",

@@ -1447,47 +1405,51 @@ "typeDescriptions": {

},
"value": null,
"visibility": "internal"
}
],
"src": "397:20:3"
"src": "396:20:3"
},
"returnParameters": {
"id": 2437,
"id": 2671,
"nodeType": "ParameterList",
"parameters": [],
"src": "436:0:3"
"src": "435:0:3"
},
"scope": 2452,
"src": "381:173:3",
"scope": 2686,
"src": "380:173:3",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"
}
],
"scope": 2453,
"src": "26:530:3"
"scope": 2687,
"src": "25:530:3"
}
],
"src": "0:557:3"
"src": "0:556:3"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {
"3": {
"1611767306216": {
"events": {},
"links": {},
"address": "0x4cdd77b3d0128de98eff6025afd356e31c2f01fc",
"transactionHash": "0x042cafadf15f0b6d791cb1fd5360c481e2c5c78d49c95d79311f2433cd2611da"
"address": "0x1246Ddaf0885A87D9F3DdF0f08d8B6cc57b68c5f",
"transactionHash": "0x49c62887deeb50f6e23f151716aea39e05b8103b1db6e841500ee9fd88080b89"
}
},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.392Z",
"schemaVersion": "3.2.3",
"updatedAt": "2021-01-27T17:10:41.873Z",
"networkType": "ethereum",
"devdoc": {
"methods": {}
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "salt",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "data",

@@ -18,2 +19,3 @@ "type": "bytes"

{
"internalType": "uint256",
"name": "iterations",

@@ -26,2 +28,3 @@ "type": "uint256"

{
"internalType": "bytes32",
"name": "",

@@ -31,3 +34,2 @@ "type": "bytes32"

],
"payable": false,
"stateMutability": "pure",

@@ -37,38 +39,48 @@ "type": "function"

],
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"salt\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"iterations\",\"type\":\"uint256\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for contracts that implement NSEC3 digest algorithms.\",\"kind\":\"dev\",\"methods\":{\"hash(bytes,bytes,uint256)\":{\"details\":\"Performs an NSEC3 iterated hash.\",\"params\":{\"data\":\"The data to hash.\",\"iterations\":\"The number of iterations to perform.\",\"salt\":\"The salt value to use on each iteration.\"},\"returns\":{\"_0\":\"The result of the iterated hash operation.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/nsec3digests/NSEC3Digest.sol\":\"NSEC3Digest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/nsec3digests/NSEC3Digest.sol\":{\"keccak256\":\"0xfee2cfbb4658f4173e7f09eb955dc36086c70b8fd043d8b47774907b7062f725\",\"urls\":[\"bzz-raw://a85576d724f3a16169c94b4076fa2ba4446bc77d2b7119bbbce04ecb64c47c6c\",\"dweb:/ipfs/QmTCARUgwmNSLKMvXdUcHfeQ7Et7LCGmnYaEgS5iytzfEt\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "pragma solidity >0.4.23;\n\n/**\n * @dev Interface for contracts that implement NSEC3 digest algorithms.\n */\ninterface NSEC3Digest {\n /**\n * @dev Performs an NSEC3 iterated hash.\n * @param salt The salt value to use on each iteration.\n * @param data The data to hash.\n * @param iterations The number of iterations to perform.\n * @return The result of the iterated hash operation.\n */\n function hash(bytes calldata salt, bytes calldata data, uint iterations) external pure returns (bytes32);\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/nsec3digests/NSEC3Digest.sol",
"source": "pragma solidity ^0.7.4;\n\n/**\n * @dev Interface for contracts that implement NSEC3 digest algorithms.\n */\ninterface NSEC3Digest {\n /**\n * @dev Performs an NSEC3 iterated hash.\n * @param salt The salt value to use on each iteration.\n * @param data The data to hash.\n * @param iterations The number of iterations to perform.\n * @return The result of the iterated hash operation.\n */\n function hash(bytes calldata salt, bytes calldata data, uint iterations) external virtual pure returns (bytes32);\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/nsec3digests/NSEC3Digest.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/nsec3digests/NSEC3Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/nsec3digests/NSEC3Digest.sol",
"exportedSymbols": {
"NSEC3Digest": [
3635
5847
]
},
"id": 3636,
"id": 5848,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3623,
"id": 5833,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:16"
"src": "0:23:18"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev Interface for contracts that implement NSEC3 digest algorithms.",
"documentation": {
"id": 5834,
"nodeType": "StructuredDocumentation",
"src": "25:79:18",
"text": " @dev Interface for contracts that implement NSEC3 digest algorithms."
},
"fullyImplemented": false,
"id": 3635,
"id": 5847,
"linearizedBaseContracts": [
3635
5847
],

@@ -79,5 +91,10 @@ "name": "NSEC3Digest",

{
"body": null,
"documentation": "@dev Performs an NSEC3 iterated hash.\n@param salt The salt value to use on each iteration.\n@param data The data to hash.\n@param iterations The number of iterations to perform.\n@return The result of the iterated hash operation.",
"id": 3634,
"documentation": {
"id": 5835,
"nodeType": "StructuredDocumentation",
"src": "133:273:18",
"text": " @dev Performs an NSEC3 iterated hash.\n @param salt The salt value to use on each iteration.\n @param data The data to hash.\n @param iterations The number of iterations to perform.\n @return The result of the iterated hash operation."
},
"functionSelector": "68f9dab2",
"id": 5846,
"implemented": false,

@@ -89,3 +106,3 @@ "kind": "function",

"parameters": {
"id": 3630,
"id": 5842,
"nodeType": "ParameterList",

@@ -95,7 +112,8 @@ "parameters": [

"constant": false,
"id": 3625,
"id": 5837,
"mutability": "mutable",
"name": "salt",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "427:19:16",
"scope": 5846,
"src": "426:19:18",
"stateVariable": false,

@@ -108,6 +126,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3624,
"id": 5836,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "427:5:16",
"src": "426:5:18",
"typeDescriptions": {

@@ -118,3 +136,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -124,7 +141,8 @@ },

"constant": false,
"id": 3627,
"id": 5839,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "448:19:16",
"scope": 5846,
"src": "447:19:18",
"stateVariable": false,

@@ -137,6 +155,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3626,
"id": 5838,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "448:5:16",
"src": "447:5:18",
"typeDescriptions": {

@@ -147,3 +165,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -153,7 +170,8 @@ },

"constant": false,
"id": 3629,
"id": 5841,
"mutability": "mutable",
"name": "iterations",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "469:15:16",
"scope": 5846,
"src": "468:15:18",
"stateVariable": false,

@@ -166,6 +184,6 @@ "storageLocation": "default",

"typeName": {
"id": 3628,
"id": 5840,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "469:4:16",
"src": "468:4:18",
"typeDescriptions": {

@@ -176,10 +194,9 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "internal"
}
],
"src": "426:59:16"
"src": "425:59:18"
},
"returnParameters": {
"id": 3633,
"id": 5845,
"nodeType": "ParameterList",

@@ -189,7 +206,8 @@ "parameters": [

"constant": false,
"id": 3632,
"id": 5844,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "509:7:16",
"scope": 5846,
"src": "516:7:18",
"stateVariable": false,

@@ -202,6 +220,6 @@ "storageLocation": "default",

"typeName": {
"id": 3631,
"id": 5843,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "509:7:16",
"src": "516:7:18",
"typeDescriptions": {

@@ -212,51 +230,56 @@ "typeIdentifier": "t_bytes32",

},
"value": null,
"visibility": "internal"
}
],
"src": "508:9:16"
"src": "515:9:18"
},
"scope": 3635,
"src": "413:105:16",
"scope": 5847,
"src": "412:113:18",
"stateMutability": "pure",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3636,
"src": "106:414:16"
"scope": 5848,
"src": "105:422:18"
}
],
"src": "0:521:16"
"src": "0:528:18"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/nsec3digests/NSEC3Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/nsec3digests/NSEC3Digest.sol",
"exportedSymbols": {
"NSEC3Digest": [
3635
5847
]
},
"id": 3636,
"id": 5848,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3623,
"id": 5833,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:16"
"src": "0:23:18"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "interface",
"documentation": "@dev Interface for contracts that implement NSEC3 digest algorithms.",
"documentation": {
"id": 5834,
"nodeType": "StructuredDocumentation",
"src": "25:79:18",
"text": " @dev Interface for contracts that implement NSEC3 digest algorithms."
},
"fullyImplemented": false,
"id": 3635,
"id": 5847,
"linearizedBaseContracts": [
3635
5847
],

@@ -267,5 +290,10 @@ "name": "NSEC3Digest",

{
"body": null,
"documentation": "@dev Performs an NSEC3 iterated hash.\n@param salt The salt value to use on each iteration.\n@param data The data to hash.\n@param iterations The number of iterations to perform.\n@return The result of the iterated hash operation.",
"id": 3634,
"documentation": {
"id": 5835,
"nodeType": "StructuredDocumentation",
"src": "133:273:18",
"text": " @dev Performs an NSEC3 iterated hash.\n @param salt The salt value to use on each iteration.\n @param data The data to hash.\n @param iterations The number of iterations to perform.\n @return The result of the iterated hash operation."
},
"functionSelector": "68f9dab2",
"id": 5846,
"implemented": false,

@@ -277,3 +305,3 @@ "kind": "function",

"parameters": {
"id": 3630,
"id": 5842,
"nodeType": "ParameterList",

@@ -283,7 +311,8 @@ "parameters": [

"constant": false,
"id": 3625,
"id": 5837,
"mutability": "mutable",
"name": "salt",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "427:19:16",
"scope": 5846,
"src": "426:19:18",
"stateVariable": false,

@@ -296,6 +325,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3624,
"id": 5836,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "427:5:16",
"src": "426:5:18",
"typeDescriptions": {

@@ -306,3 +335,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -312,7 +340,8 @@ },

"constant": false,
"id": 3627,
"id": 5839,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "448:19:16",
"scope": 5846,
"src": "447:19:18",
"stateVariable": false,

@@ -325,6 +354,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3626,
"id": 5838,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "448:5:16",
"src": "447:5:18",
"typeDescriptions": {

@@ -335,3 +364,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -341,7 +369,8 @@ },

"constant": false,
"id": 3629,
"id": 5841,
"mutability": "mutable",
"name": "iterations",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "469:15:16",
"scope": 5846,
"src": "468:15:18",
"stateVariable": false,

@@ -354,6 +383,6 @@ "storageLocation": "default",

"typeName": {
"id": 3628,
"id": 5840,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "469:4:16",
"src": "468:4:18",
"typeDescriptions": {

@@ -364,10 +393,9 @@ "typeIdentifier": "t_uint256",

},
"value": null,
"visibility": "internal"
}
],
"src": "426:59:16"
"src": "425:59:18"
},
"returnParameters": {
"id": 3633,
"id": 5845,
"nodeType": "ParameterList",

@@ -377,7 +405,8 @@ "parameters": [

"constant": false,
"id": 3632,
"id": 5844,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3634,
"src": "509:7:16",
"scope": 5846,
"src": "516:7:18",
"stateVariable": false,

@@ -390,6 +419,6 @@ "storageLocation": "default",

"typeName": {
"id": 3631,
"id": 5843,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "509:7:16",
"src": "516:7:18",
"typeDescriptions": {

@@ -400,30 +429,30 @@ "typeIdentifier": "t_bytes32",

},
"value": null,
"visibility": "internal"
}
],
"src": "508:9:16"
"src": "515:9:18"
},
"scope": 3635,
"src": "413:105:16",
"scope": 5847,
"src": "412:113:18",
"stateMutability": "pure",
"superFunction": null,
"virtual": true,
"visibility": "external"
}
],
"scope": 3636,
"src": "106:414:16"
"scope": 5848,
"src": "105:422:18"
}
],
"src": "0:521:16"
"src": "0:528:18"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.377Z",
"schemaVersion": "3.3.2",
"updatedAt": "2021-01-27T15:35:30.282Z",
"devdoc": {
"details": "Interface for contracts that implement NSEC3 digest algorithms.",
"kind": "dev",
"methods": {

@@ -437,9 +466,14 @@ "hash(bytes,bytes,uint256)": {

},
"return": "The result of the iterated hash operation."
"returns": {
"_0": "The result of the iterated hash operation."
}
}
}
},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,7 +5,12 @@ {

{
"constant": true,
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",

@@ -15,3 +20,2 @@ "type": "address"

],
"payable": false,
"stateMutability": "view",

@@ -21,11 +25,5 @@ "type": "function"

{
"inputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "newOwner",

@@ -37,3 +35,2 @@ "type": "address"

"outputs": [],
"payable": false,
"stateMutability": "nonpayable",

@@ -43,38 +40,48 @@ "type": "function"

],
"bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101e8806100606000396000f3fe60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806313af4035146100515780638da5cb5b146100a2575b600080fd5b34801561005d57600080fd5b506100a06004803603602081101561007457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100f9565b005b3480156100ae57600080fd5b506100b7610197565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561015457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea165627a7a7230582099a3b8e71698eaa53443d31f1f659968bdd54d612cb180d8989a244dab485f220029",
"deployedBytecode": "0x60806040526004361061004c576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806313af4035146100515780638da5cb5b146100a2575b600080fd5b34801561005d57600080fd5b506100a06004803603602081101561007457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100f9565b005b3480156100ae57600080fd5b506100b7610197565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561015457600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea165627a7a7230582099a3b8e71698eaa53443d31f1f659968bdd54d612cb180d8989a244dab485f220029",
"sourceMap": "78:287:4:-;;;214:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;214:56:4;253:10;245:5;;:18;;;;;;;;;;;;;;;;;;78:287;;;;;;",
"deployedSourceMap": "78:287:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;276:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;276:87:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;276:87:4;;;;;;;;;;;;;;;;;;;;;;99:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;99:20:4;;;;;;;;;;;;;;;;;;;;;;;;;;;276:87;184:5;;;;;;;;;;;170:19;;:10;:19;;;162:28;;;;;;;;348:8;340:5;;:16;;;;;;;;;;;;;;;;;;276:87;:::o;99:20::-;;;;;;;;;;;;;:::o",
"source": "pragma solidity >0.4.23;\n\n/**\n* @dev Contract mixin for 'owned' contracts.\n*/\ncontract Owned {\n address public owner;\n \n modifier owner_only() {\n require(msg.sender == owner);\n _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setOwner(address newOwner) public owner_only {\n owner = newOwner;\n }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/Owned.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"setOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract mixin for 'owned' contracts.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/Owned.sol\":\"Owned\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/Owned.sol\":{\"keccak256\":\"0x2d898d887fa5f2aa2658777c989e86617d138e40216c98284039d6a54c3ffe04\",\"urls\":[\"bzz-raw://d0c8cde23faa39ef411227c470b75c502577ebfb175f42eb143949964ebfa35e\",\"dweb:/ipfs/QmXL3F6iEhVvwa6dGj2dgM8Bat1NwUusv6n45Wegh4QSgb\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506101a8806100606000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806313af40351461003b5780638da5cb5b1461007f575b600080fd5b61007d6004803603602081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100b3565b005b61008761014e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461010b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea2646970667358221220ce1b4de03da7af39d80569be880a390c7d255076c1fda76bfdc8caf813756a3264736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806313af40351461003b5780638da5cb5b1461007f575b600080fd5b61007d6004803603602081101561005157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506100b3565b005b61008761014e565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461010b57600080fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168156fea2646970667358221220ce1b4de03da7af39d80569be880a390c7d255076c1fda76bfdc8caf813756a3264736f6c63430007040033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "77:287:4:-:0;;;213:56;;;;;;;;;;252:10;244:5;;:18;;;;;;;;;;;;;;;;;;77:287;;;;;;",
"deployedSourceMap": "77:287:4:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;275:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;98:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;275:87;183:5;;;;;;;;;;169:19;;:10;:19;;;161:28;;;;;;347:8:::1;339:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;275:87:::0;:::o;98:20::-;;;;;;;;;;;;:::o",
"source": "pragma solidity ^0.7.4;\n\n/**\n* @dev Contract mixin for 'owned' contracts.\n*/\ncontract Owned {\n address public owner;\n \n modifier owner_only() {\n require(msg.sender == owner);\n _;\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setOwner(address newOwner) public owner_only {\n owner = newOwner;\n }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Owned.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/Owned.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Owned.sol",
"exportedSymbols": {
"Owned": [
2489
2724
]
},
"id": 2490,
"id": 2725,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2454,
"id": 2688,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:4"
"src": "0:23:4"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@dev Contract mixin for 'owned' contracts.",
"documentation": {
"id": 2689,
"nodeType": "StructuredDocumentation",
"src": "25:51:4",
"text": " @dev Contract mixin for 'owned' contracts."
},
"fullyImplemented": true,
"id": 2489,
"id": 2724,
"linearizedBaseContracts": [
2489
2724
],

@@ -86,7 +93,9 @@ "name": "Owned",

"constant": false,
"id": 2456,
"functionSelector": "8da5cb5b",
"id": 2691,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 2489,
"src": "99:20:4",
"scope": 2724,
"src": "98:20:4",
"stateVariable": true,

@@ -99,6 +108,6 @@ "storageLocation": "default",

"typeName": {
"id": 2455,
"id": 2690,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "99:7:4",
"src": "98:7:4",
"stateMutability": "nonpayable",

@@ -110,3 +119,2 @@ "typeDescriptions": {

},
"value": null,
"visibility": "public"

@@ -116,12 +124,10 @@ },

"body": {
"id": 2466,
"id": 2701,
"nodeType": "Block",
"src": "152:56:4",
"src": "151:56:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {

@@ -131,3 +137,3 @@ "typeIdentifier": "t_address",

},
"id": 2462,
"id": 2697,
"isConstant": false,

@@ -138,11 +144,9 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2459,
"id": 2694,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "170:3:4",
"referencedDeclaration": -15,
"src": "169:3:4",
"typeDescriptions": {

@@ -153,3 +157,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2460,
"id": 2695,
"isConstant": false,

@@ -161,4 +165,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "170:10:4",
"src": "169:10:4",
"typeDescriptions": {

@@ -172,9 +175,8 @@ "typeIdentifier": "t_address_payable",

"rightExpression": {
"argumentTypes": null,
"id": 2461,
"id": 2696,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "184:5:4",
"referencedDeclaration": 2691,
"src": "183:5:4",
"typeDescriptions": {

@@ -185,3 +187,3 @@ "typeIdentifier": "t_address",

},
"src": "170:19:4",
"src": "169:19:4",
"typeDescriptions": {

@@ -200,11 +202,11 @@ "typeIdentifier": "t_bool",

],
"id": 2458,
"id": 2693,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4242,
4243
-18,
-18
],
"referencedDeclaration": 4242,
"src": "162:7:4",
"referencedDeclaration": -18,
"src": "161:7:4",
"typeDescriptions": {

@@ -215,3 +217,3 @@ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",

},
"id": 2463,
"id": 2698,
"isConstant": false,

@@ -224,3 +226,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "162:28:4",
"src": "161:28:4",
"tryCall": false,
"typeDescriptions": {

@@ -231,24 +234,24 @@ "typeIdentifier": "t_tuple$__$",

},
"id": 2464,
"id": 2699,
"nodeType": "ExpressionStatement",
"src": "162:28:4"
"src": "161:28:4"
},
{
"id": 2465,
"id": 2700,
"nodeType": "PlaceholderStatement",
"src": "200:1:4"
"src": "199:1:4"
}
]
},
"documentation": null,
"id": 2467,
"id": 2702,
"name": "owner_only",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 2457,
"id": 2692,
"nodeType": "ParameterList",
"parameters": [],
"src": "149:2:4"
"src": "148:2:4"
},
"src": "130:78:4",
"src": "129:78:4",
"virtual": false,
"visibility": "internal"

@@ -258,10 +261,9 @@ },

"body": {
"id": 2475,
"id": 2710,
"nodeType": "Block",
"src": "235:35:4",
"src": "234:35:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2473,
"id": 2708,
"isConstant": false,

@@ -272,9 +274,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2470,
"id": 2705,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "245:5:4",
"referencedDeclaration": 2691,
"src": "244:5:4",
"typeDescriptions": {

@@ -288,11 +289,9 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2471,
"id": 2706,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "253:3:4",
"referencedDeclaration": -15,
"src": "252:3:4",
"typeDescriptions": {

@@ -303,3 +302,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2472,
"id": 2707,
"isConstant": false,

@@ -311,4 +310,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "253:10:4",
"src": "252:10:4",
"typeDescriptions": {

@@ -319,3 +317,3 @@ "typeIdentifier": "t_address_payable",

},
"src": "245:18:4",
"src": "244:18:4",
"typeDescriptions": {

@@ -326,10 +324,9 @@ "typeIdentifier": "t_address",

},
"id": 2474,
"id": 2709,
"nodeType": "ExpressionStatement",
"src": "245:18:4"
"src": "244:18:4"
}
]
},
"documentation": null,
"id": 2476,
"id": 2711,
"implemented": true,

@@ -341,17 +338,17 @@ "kind": "constructor",

"parameters": {
"id": 2468,
"id": 2703,
"nodeType": "ParameterList",
"parameters": [],
"src": "225:2:4"
"src": "224:2:4"
},
"returnParameters": {
"id": 2469,
"id": 2704,
"nodeType": "ParameterList",
"parameters": [],
"src": "235:0:4"
"src": "234:0:4"
},
"scope": 2489,
"src": "214:56:4",
"scope": 2724,
"src": "213:56:4",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -361,10 +358,9 @@ },

"body": {
"id": 2487,
"id": 2722,
"nodeType": "Block",
"src": "330:33:4",
"src": "329:33:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2485,
"id": 2720,
"isConstant": false,

@@ -375,9 +371,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2483,
"id": 2718,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "340:5:4",
"referencedDeclaration": 2691,
"src": "339:5:4",
"typeDescriptions": {

@@ -391,9 +386,8 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"id": 2484,
"id": 2719,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "348:8:4",
"referencedDeclaration": 2713,
"src": "347:8:4",
"typeDescriptions": {

@@ -404,3 +398,3 @@ "typeIdentifier": "t_address",

},
"src": "340:16:4",
"src": "339:16:4",
"typeDescriptions": {

@@ -411,10 +405,10 @@ "typeIdentifier": "t_address",

},
"id": 2486,
"id": 2721,
"nodeType": "ExpressionStatement",
"src": "340:16:4"
"src": "339:16:4"
}
]
},
"documentation": null,
"id": 2488,
"functionSelector": "13af4035",
"id": 2723,
"implemented": true,

@@ -424,12 +418,10 @@ "kind": "function",

{
"arguments": null,
"id": 2481,
"id": 2716,
"modifierName": {
"argumentTypes": null,
"id": 2480,
"id": 2715,
"name": "owner_only",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2467,
"src": "319:10:4",
"referencedDeclaration": 2702,
"src": "318:10:4",
"typeDescriptions": {

@@ -441,3 +433,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "319:10:4"
"src": "318:10:4"
}

@@ -448,3 +440,3 @@ ],

"parameters": {
"id": 2479,
"id": 2714,
"nodeType": "ParameterList",

@@ -454,7 +446,8 @@ "parameters": [

"constant": false,
"id": 2478,
"id": 2713,
"mutability": "mutable",
"name": "newOwner",
"nodeType": "VariableDeclaration",
"scope": 2488,
"src": "294:16:4",
"scope": 2723,
"src": "293:16:4",
"stateVariable": false,

@@ -467,6 +460,6 @@ "storageLocation": "default",

"typeName": {
"id": 2477,
"id": 2712,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "294:7:4",
"src": "293:7:4",
"stateMutability": "nonpayable",

@@ -478,57 +471,62 @@ "typeDescriptions": {

},
"value": null,
"visibility": "internal"
}
],
"src": "293:18:4"
"src": "292:18:4"
},
"returnParameters": {
"id": 2482,
"id": 2717,
"nodeType": "ParameterList",
"parameters": [],
"src": "330:0:4"
"src": "329:0:4"
},
"scope": 2489,
"src": "276:87:4",
"scope": 2724,
"src": "275:87:4",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"
}
],
"scope": 2490,
"src": "78:287:4"
"scope": 2725,
"src": "77:287:4"
}
],
"src": "0:366:4"
"src": "0:365:4"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/Owned.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/Owned.sol",
"exportedSymbols": {
"Owned": [
2489
2724
]
},
"id": 2490,
"id": 2725,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 2454,
"id": 2688,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:4"
"src": "0:23:4"
},
{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "contract",
"documentation": "@dev Contract mixin for 'owned' contracts.",
"documentation": {
"id": 2689,
"nodeType": "StructuredDocumentation",
"src": "25:51:4",
"text": " @dev Contract mixin for 'owned' contracts."
},
"fullyImplemented": true,
"id": 2489,
"id": 2724,
"linearizedBaseContracts": [
2489
2724
],

@@ -540,7 +538,9 @@ "name": "Owned",

"constant": false,
"id": 2456,
"functionSelector": "8da5cb5b",
"id": 2691,
"mutability": "mutable",
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 2489,
"src": "99:20:4",
"scope": 2724,
"src": "98:20:4",
"stateVariable": true,

@@ -553,6 +553,6 @@ "storageLocation": "default",

"typeName": {
"id": 2455,
"id": 2690,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "99:7:4",
"src": "98:7:4",
"stateMutability": "nonpayable",

@@ -564,3 +564,2 @@ "typeDescriptions": {

},
"value": null,
"visibility": "public"

@@ -570,12 +569,10 @@ },

"body": {
"id": 2466,
"id": 2701,
"nodeType": "Block",
"src": "152:56:4",
"src": "151:56:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {

@@ -585,3 +582,3 @@ "typeIdentifier": "t_address",

},
"id": 2462,
"id": 2697,
"isConstant": false,

@@ -592,11 +589,9 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2459,
"id": 2694,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "170:3:4",
"referencedDeclaration": -15,
"src": "169:3:4",
"typeDescriptions": {

@@ -607,3 +602,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2460,
"id": 2695,
"isConstant": false,

@@ -615,4 +610,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "170:10:4",
"src": "169:10:4",
"typeDescriptions": {

@@ -626,9 +620,8 @@ "typeIdentifier": "t_address_payable",

"rightExpression": {
"argumentTypes": null,
"id": 2461,
"id": 2696,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "184:5:4",
"referencedDeclaration": 2691,
"src": "183:5:4",
"typeDescriptions": {

@@ -639,3 +632,3 @@ "typeIdentifier": "t_address",

},
"src": "170:19:4",
"src": "169:19:4",
"typeDescriptions": {

@@ -654,11 +647,11 @@ "typeIdentifier": "t_bool",

],
"id": 2458,
"id": 2693,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4242,
4243
-18,
-18
],
"referencedDeclaration": 4242,
"src": "162:7:4",
"referencedDeclaration": -18,
"src": "161:7:4",
"typeDescriptions": {

@@ -669,3 +662,3 @@ "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",

},
"id": 2463,
"id": 2698,
"isConstant": false,

@@ -678,3 +671,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "162:28:4",
"src": "161:28:4",
"tryCall": false,
"typeDescriptions": {

@@ -685,24 +679,24 @@ "typeIdentifier": "t_tuple$__$",

},
"id": 2464,
"id": 2699,
"nodeType": "ExpressionStatement",
"src": "162:28:4"
"src": "161:28:4"
},
{
"id": 2465,
"id": 2700,
"nodeType": "PlaceholderStatement",
"src": "200:1:4"
"src": "199:1:4"
}
]
},
"documentation": null,
"id": 2467,
"id": 2702,
"name": "owner_only",
"nodeType": "ModifierDefinition",
"parameters": {
"id": 2457,
"id": 2692,
"nodeType": "ParameterList",
"parameters": [],
"src": "149:2:4"
"src": "148:2:4"
},
"src": "130:78:4",
"src": "129:78:4",
"virtual": false,
"visibility": "internal"

@@ -712,10 +706,9 @@ },

"body": {
"id": 2475,
"id": 2710,
"nodeType": "Block",
"src": "235:35:4",
"src": "234:35:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2473,
"id": 2708,
"isConstant": false,

@@ -726,9 +719,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2470,
"id": 2705,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "245:5:4",
"referencedDeclaration": 2691,
"src": "244:5:4",
"typeDescriptions": {

@@ -742,11 +734,9 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 2471,
"id": 2706,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4239,
"src": "253:3:4",
"referencedDeclaration": -15,
"src": "252:3:4",
"typeDescriptions": {

@@ -757,3 +747,3 @@ "typeIdentifier": "t_magic_message",

},
"id": 2472,
"id": 2707,
"isConstant": false,

@@ -765,4 +755,3 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "253:10:4",
"src": "252:10:4",
"typeDescriptions": {

@@ -773,3 +762,3 @@ "typeIdentifier": "t_address_payable",

},
"src": "245:18:4",
"src": "244:18:4",
"typeDescriptions": {

@@ -780,10 +769,9 @@ "typeIdentifier": "t_address",

},
"id": 2474,
"id": 2709,
"nodeType": "ExpressionStatement",
"src": "245:18:4"
"src": "244:18:4"
}
]
},
"documentation": null,
"id": 2476,
"id": 2711,
"implemented": true,

@@ -795,17 +783,17 @@ "kind": "constructor",

"parameters": {
"id": 2468,
"id": 2703,
"nodeType": "ParameterList",
"parameters": [],
"src": "225:2:4"
"src": "224:2:4"
},
"returnParameters": {
"id": 2469,
"id": 2704,
"nodeType": "ParameterList",
"parameters": [],
"src": "235:0:4"
"src": "234:0:4"
},
"scope": 2489,
"src": "214:56:4",
"scope": 2724,
"src": "213:56:4",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"

@@ -815,10 +803,9 @@ },

"body": {
"id": 2487,
"id": 2722,
"nodeType": "Block",
"src": "330:33:4",
"src": "329:33:4",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 2485,
"id": 2720,
"isConstant": false,

@@ -829,9 +816,8 @@ "isLValue": false,

"leftHandSide": {
"argumentTypes": null,
"id": 2483,
"id": 2718,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2456,
"src": "340:5:4",
"referencedDeclaration": 2691,
"src": "339:5:4",
"typeDescriptions": {

@@ -845,9 +831,8 @@ "typeIdentifier": "t_address",

"rightHandSide": {
"argumentTypes": null,
"id": 2484,
"id": 2719,
"name": "newOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2478,
"src": "348:8:4",
"referencedDeclaration": 2713,
"src": "347:8:4",
"typeDescriptions": {

@@ -858,3 +843,3 @@ "typeIdentifier": "t_address",

},
"src": "340:16:4",
"src": "339:16:4",
"typeDescriptions": {

@@ -865,10 +850,10 @@ "typeIdentifier": "t_address",

},
"id": 2486,
"id": 2721,
"nodeType": "ExpressionStatement",
"src": "340:16:4"
"src": "339:16:4"
}
]
},
"documentation": null,
"id": 2488,
"functionSelector": "13af4035",
"id": 2723,
"implemented": true,

@@ -878,12 +863,10 @@ "kind": "function",

{
"arguments": null,
"id": 2481,
"id": 2716,
"modifierName": {
"argumentTypes": null,
"id": 2480,
"id": 2715,
"name": "owner_only",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 2467,
"src": "319:10:4",
"referencedDeclaration": 2702,
"src": "318:10:4",
"typeDescriptions": {

@@ -895,3 +878,3 @@ "typeIdentifier": "t_modifier$__$",

"nodeType": "ModifierInvocation",
"src": "319:10:4"
"src": "318:10:4"
}

@@ -902,3 +885,3 @@ ],

"parameters": {
"id": 2479,
"id": 2714,
"nodeType": "ParameterList",

@@ -908,7 +891,8 @@ "parameters": [

"constant": false,
"id": 2478,
"id": 2713,
"mutability": "mutable",
"name": "newOwner",
"nodeType": "VariableDeclaration",
"scope": 2488,
"src": "294:16:4",
"scope": 2723,
"src": "293:16:4",
"stateVariable": false,

@@ -921,6 +905,6 @@ "storageLocation": "default",

"typeName": {
"id": 2477,
"id": 2712,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "294:7:4",
"src": "293:7:4",
"stateMutability": "nonpayable",

@@ -932,41 +916,44 @@ "typeDescriptions": {

},
"value": null,
"visibility": "internal"
}
],
"src": "293:18:4"
"src": "292:18:4"
},
"returnParameters": {
"id": 2482,
"id": 2717,
"nodeType": "ParameterList",
"parameters": [],
"src": "330:0:4"
"src": "329:0:4"
},
"scope": 2489,
"src": "276:87:4",
"scope": 2724,
"src": "275:87:4",
"stateMutability": "nonpayable",
"superFunction": null,
"virtual": false,
"visibility": "public"
}
],
"scope": 2490,
"src": "78:287:4"
"scope": 2725,
"src": "77:287:4"
}
],
"src": "0:366:4"
"src": "0:365:4"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.389Z",
"schemaVersion": "3.3.2",
"updatedAt": "2021-01-27T15:35:30.211Z",
"devdoc": {
"details": "Contract mixin for 'owned' contracts.",
"methods": {}
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}
{
"contractName": "RSAVerify",
"abi": [],
"bytecode": "0x604c602c600b82828239805160001a60731460008114601c57601e565bfe5b5030600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820df2ca05116f6cf1ceaecc055ce83509e9b4551ba05c2a123d42d9ce355a736050029",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea165627a7a72305820df2ca05116f6cf1ceaecc055ce83509e9b4551ba05c2a123d42d9ce355a736050029",
"sourceMap": "88:459:11:-;;132:2:-1;166:7;155:9;146:7;137:37;252:7;246:14;243:1;238:23;232:4;229:33;270:1;265:20;;;;222:63;;265:20;274:9;222:63;;298:9;295:1;288:20;328:4;319:7;311:22;352:7;343;336:24",
"deployedSourceMap": "88:459:11:-;;;;;;;;",
"source": "pragma solidity >0.4.23;\n\nimport \"../BytesUtils.sol\";\nimport \"./ModexpPrecompile.sol\";\n\nlibrary RSAVerify {\n /**\n * @dev Recovers the input data from an RSA signature, returning the result in S.\n * @param N The RSA public modulus.\n * @param E The RSA public exponent.\n * @param S The signature to recover.\n * @return True if the recovery succeeded.\n */\n function rsarecover(bytes memory N, bytes memory E, bytes memory S) internal view returns (bool, bytes memory) {\n return ModexpPrecompile.modexp(S, E, N);\n }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/RSAVerify.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/RSAVerify.sol\":\"RSAVerify\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x17b0123a981825ac9445ec82c8e20288321b27139518ba1f81c4cbd06f1312ab\",\"urls\":[\"bzz-raw://fe03e00240c645751873f38f56cc3db12d19a82538a0f0e9648ccfc23e8a715d\",\"dweb:/ipfs/QmbT7Q7GUgkZFY5gA4RxhWg3anPKiH9EZoM6HWBKDkK7dp\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/ModexpPrecompile.sol\":{\"keccak256\":\"0x439209168162b319cbc197a58f2aee70dceb9e559acc612d272e496660c81683\",\"urls\":[\"bzz-raw://7b6cfb421acd55264fe00e6849e426fd8b8cf831861d9b8a3f519b689a7f8783\",\"dweb:/ipfs/QmP1txLavrJRggVRJ8TnWDVQMdb2ugi1PTFmf1PNNMDHQY\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/RSAVerify.sol\":{\"keccak256\":\"0xf6a0b278ce765d3217aef33fea057f83be09653ffcba00b181e065e4d3afdebf\",\"urls\":[\"bzz-raw://334b54c3200bbb55518bc7a47ca7fcfa6edf9de75a15117569b697914b9ff50d\",\"dweb:/ipfs/QmRAg4NQJV2ia8EsAcqdQXSXw4gXDT3g8p1KxShPoCXyXA\"]},\"@ensdomains/buffer/contracts/Buffer.sol\":{\"keccak256\":\"0x3dc6d79ec7994ddf8ce80248f2d53635254b8e5b19617ee257ae5857e9da1bd1\",\"urls\":[\"bzz-raw://f72312eafad4c9d6f9917a5f4bd0555011a26bfbf86313f9d8de374097e7b61c\",\"dweb:/ipfs/QmcCBXetT1ie4GtA1N6HckQeucq7er4jc1yUbypYvMBjZv\"]}},\"version\":1}",
"bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ec2a16e6b07b2ec4ae3e2a91ea369026980764344ce9299327d026cf75fa37064736f6c63430007040033",
"deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ec2a16e6b07b2ec4ae3e2a91ea369026980764344ce9299327d026cf75fa37064736f6c63430007040033",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "87:459:13:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "87:459:13:-:0;;;;;;;;",
"source": "pragma solidity ^0.7.4;\n\nimport \"../BytesUtils.sol\";\nimport \"./ModexpPrecompile.sol\";\n\nlibrary RSAVerify {\n /**\n * @dev Recovers the input data from an RSA signature, returning the result in S.\n * @param N The RSA public modulus.\n * @param E The RSA public exponent.\n * @param S The signature to recover.\n * @return True if the recovery succeeded.\n */\n function rsarecover(bytes memory N, bytes memory E, bytes memory S) internal view returns (bool, bytes memory) {\n return ModexpPrecompile.modexp(S, E, N);\n }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/RSAVerify.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/RSAVerify.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/RSAVerify.sol",
"exportedSymbols": {
"Buffer": [
6432
],
"BytesUtils": [
730
],
"ModexpPrecompile": [
5348
],
"RSAVerify": [
3527
5727
]
},
"id": 3528,
"id": 5728,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3503,
"id": 5702,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:11"
"src": "0:23:13"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3504,
"id": 5703,
"nodeType": "ImportDirective",
"scope": 3528,
"sourceUnit": 721,
"src": "26:27:11",
"scope": 5728,
"sourceUnit": 731,
"src": "25:27:13",
"symbolAliases": [],

@@ -43,9 +56,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/ModexpPrecompile.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/ModexpPrecompile.sol",
"file": "./ModexpPrecompile.sol",
"id": 3505,
"id": 5704,
"nodeType": "ImportDirective",
"scope": 3528,
"sourceUnit": 3246,
"src": "54:32:11",
"scope": 5728,
"sourceUnit": 5349,
"src": "53:32:13",
"symbolAliases": [],

@@ -55,10 +68,10 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 3527,
"id": 5727,
"linearizedBaseContracts": [
3527
5727
],

@@ -70,18 +83,16 @@ "name": "RSAVerify",

"body": {
"id": 3525,
"id": 5725,
"nodeType": "Block",
"src": "489:56:11",
"src": "488:56:13",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3520,
"id": 5720,
"name": "S",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3511,
"src": "530:1:11",
"referencedDeclaration": 5711,
"src": "529:1:13",
"typeDescriptions": {

@@ -93,9 +104,8 @@ "typeIdentifier": "t_bytes_memory_ptr",

{
"argumentTypes": null,
"id": 3521,
"id": 5721,
"name": "E",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3509,
"src": "533:1:11",
"referencedDeclaration": 5709,
"src": "532:1:13",
"typeDescriptions": {

@@ -107,9 +117,8 @@ "typeIdentifier": "t_bytes_memory_ptr",

{
"argumentTypes": null,
"id": 3522,
"id": 5722,
"name": "N",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "536:1:11",
"referencedDeclaration": 5707,
"src": "535:1:13",
"typeDescriptions": {

@@ -137,15 +146,14 @@ "typeIdentifier": "t_bytes_memory_ptr",

"expression": {
"argumentTypes": null,
"id": 3518,
"id": 5718,
"name": "ModexpPrecompile",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3245,
"src": "506:16:11",
"referencedDeclaration": 5348,
"src": "505:16:13",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ModexpPrecompile_$3245_$",
"typeIdentifier": "t_type$_t_contract$_ModexpPrecompile_$5348_$",
"typeString": "type(library ModexpPrecompile)"
}
},
"id": 3519,
"id": 5719,
"isConstant": false,

@@ -157,4 +165,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 3244,
"src": "506:23:11",
"referencedDeclaration": 5347,
"src": "505:23:13",
"typeDescriptions": {

@@ -165,3 +173,3 @@ "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",

},
"id": 3523,
"id": 5723,
"isConstant": false,

@@ -174,3 +182,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "506:32:11",
"src": "505:32:13",
"tryCall": false,
"typeDescriptions": {

@@ -181,11 +190,16 @@ "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",

},
"functionReturnParameters": 3517,
"id": 3524,
"functionReturnParameters": 5717,
"id": 5724,
"nodeType": "Return",
"src": "499:39:11"
"src": "498:39:13"
}
]
},
"documentation": "@dev Recovers the input data from an RSA signature, returning the result in S.\n@param N The RSA public modulus.\n@param E The RSA public exponent.\n@param S The signature to recover.\n@return True if the recovery succeeded.",
"id": 3526,
"documentation": {
"id": 5705,
"nodeType": "StructuredDocumentation",
"src": "111:261:13",
"text": " @dev Recovers the input data from an RSA signature, returning the result in S.\n @param N The RSA public modulus.\n @param E The RSA public exponent.\n @param S The signature to recover.\n @return True if the recovery succeeded."
},
"id": 5726,
"implemented": true,

@@ -197,3 +211,3 @@ "kind": "function",

"parameters": {
"id": 3512,
"id": 5712,
"nodeType": "ParameterList",

@@ -203,7 +217,8 @@ "parameters": [

"constant": false,
"id": 3507,
"id": 5707,
"mutability": "mutable",
"name": "N",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "398:14:11",
"scope": 5726,
"src": "397:14:13",
"stateVariable": false,

@@ -216,6 +231,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3506,
"id": 5706,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "398:5:11",
"src": "397:5:13",
"typeDescriptions": {

@@ -226,3 +241,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -232,7 +246,8 @@ },

"constant": false,
"id": 3509,
"id": 5709,
"mutability": "mutable",
"name": "E",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "414:14:11",
"scope": 5726,
"src": "413:14:13",
"stateVariable": false,

@@ -245,6 +260,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3508,
"id": 5708,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "414:5:11",
"src": "413:5:13",
"typeDescriptions": {

@@ -255,3 +270,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -261,7 +275,8 @@ },

"constant": false,
"id": 3511,
"id": 5711,
"mutability": "mutable",
"name": "S",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "430:14:11",
"scope": 5726,
"src": "429:14:13",
"stateVariable": false,

@@ -274,6 +289,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3510,
"id": 5710,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "430:5:11",
"src": "429:5:13",
"typeDescriptions": {

@@ -284,10 +299,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "397:48:11"
"src": "396:48:13"
},
"returnParameters": {
"id": 3517,
"id": 5717,
"nodeType": "ParameterList",

@@ -297,7 +311,8 @@ "parameters": [

"constant": false,
"id": 3514,
"id": 5714,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "469:4:11",
"scope": 5726,
"src": "468:4:13",
"stateVariable": false,

@@ -310,6 +325,6 @@ "storageLocation": "default",

"typeName": {
"id": 3513,
"id": 5713,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "469:4:11",
"src": "468:4:13",
"typeDescriptions": {

@@ -320,3 +335,2 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"

@@ -326,7 +340,8 @@ },

"constant": false,
"id": 3516,
"id": 5716,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "475:12:11",
"scope": 5726,
"src": "474:12:13",
"stateVariable": false,

@@ -339,6 +354,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3515,
"id": 5715,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "475:5:11",
"src": "474:5:13",
"typeDescriptions": {

@@ -349,50 +364,58 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "468:20:11"
"src": "467:20:13"
},
"scope": 3527,
"src": "378:167:11",
"scope": 5727,
"src": "377:167:13",
"stateMutability": "view",
"superFunction": null,
"virtual": false,
"visibility": "internal"
}
],
"scope": 3528,
"src": "88:459:11"
"scope": 5728,
"src": "87:459:13"
}
],
"src": "0:548:11"
"src": "0:547:13"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/RSAVerify.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/RSAVerify.sol",
"exportedSymbols": {
"Buffer": [
6432
],
"BytesUtils": [
730
],
"ModexpPrecompile": [
5348
],
"RSAVerify": [
3527
5727
]
},
"id": 3528,
"id": 5728,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3503,
"id": 5702,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:11"
"src": "0:23:13"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3504,
"id": 5703,
"nodeType": "ImportDirective",
"scope": 3528,
"sourceUnit": 721,
"src": "26:27:11",
"scope": 5728,
"sourceUnit": 731,
"src": "25:27:13",
"symbolAliases": [],

@@ -402,9 +425,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/algorithms/ModexpPrecompile.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/algorithms/ModexpPrecompile.sol",
"file": "./ModexpPrecompile.sol",
"id": 3505,
"id": 5704,
"nodeType": "ImportDirective",
"scope": 3528,
"sourceUnit": 3246,
"src": "54:32:11",
"scope": 5728,
"sourceUnit": 5349,
"src": "53:32:13",
"symbolAliases": [],

@@ -414,10 +437,10 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [],
"contractDependencies": [],
"contractKind": "library",
"documentation": null,
"fullyImplemented": true,
"id": 3527,
"id": 5727,
"linearizedBaseContracts": [
3527
5727
],

@@ -429,18 +452,16 @@ "name": "RSAVerify",

"body": {
"id": 3525,
"id": 5725,
"nodeType": "Block",
"src": "489:56:11",
"src": "488:56:13",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3520,
"id": 5720,
"name": "S",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3511,
"src": "530:1:11",
"referencedDeclaration": 5711,
"src": "529:1:13",
"typeDescriptions": {

@@ -452,9 +473,8 @@ "typeIdentifier": "t_bytes_memory_ptr",

{
"argumentTypes": null,
"id": 3521,
"id": 5721,
"name": "E",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3509,
"src": "533:1:11",
"referencedDeclaration": 5709,
"src": "532:1:13",
"typeDescriptions": {

@@ -466,9 +486,8 @@ "typeIdentifier": "t_bytes_memory_ptr",

{
"argumentTypes": null,
"id": 3522,
"id": 5722,
"name": "N",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3507,
"src": "536:1:11",
"referencedDeclaration": 5707,
"src": "535:1:13",
"typeDescriptions": {

@@ -496,15 +515,14 @@ "typeIdentifier": "t_bytes_memory_ptr",

"expression": {
"argumentTypes": null,
"id": 3518,
"id": 5718,
"name": "ModexpPrecompile",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3245,
"src": "506:16:11",
"referencedDeclaration": 5348,
"src": "505:16:13",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_ModexpPrecompile_$3245_$",
"typeIdentifier": "t_type$_t_contract$_ModexpPrecompile_$5348_$",
"typeString": "type(library ModexpPrecompile)"
}
},
"id": 3519,
"id": 5719,
"isConstant": false,

@@ -516,4 +534,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 3244,
"src": "506:23:11",
"referencedDeclaration": 5347,
"src": "505:23:13",
"typeDescriptions": {

@@ -524,3 +542,3 @@ "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",

},
"id": 3523,
"id": 5723,
"isConstant": false,

@@ -533,3 +551,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "506:32:11",
"src": "505:32:13",
"tryCall": false,
"typeDescriptions": {

@@ -540,11 +559,16 @@ "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",

},
"functionReturnParameters": 3517,
"id": 3524,
"functionReturnParameters": 5717,
"id": 5724,
"nodeType": "Return",
"src": "499:39:11"
"src": "498:39:13"
}
]
},
"documentation": "@dev Recovers the input data from an RSA signature, returning the result in S.\n@param N The RSA public modulus.\n@param E The RSA public exponent.\n@param S The signature to recover.\n@return True if the recovery succeeded.",
"id": 3526,
"documentation": {
"id": 5705,
"nodeType": "StructuredDocumentation",
"src": "111:261:13",
"text": " @dev Recovers the input data from an RSA signature, returning the result in S.\n @param N The RSA public modulus.\n @param E The RSA public exponent.\n @param S The signature to recover.\n @return True if the recovery succeeded."
},
"id": 5726,
"implemented": true,

@@ -556,3 +580,3 @@ "kind": "function",

"parameters": {
"id": 3512,
"id": 5712,
"nodeType": "ParameterList",

@@ -562,7 +586,8 @@ "parameters": [

"constant": false,
"id": 3507,
"id": 5707,
"mutability": "mutable",
"name": "N",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "398:14:11",
"scope": 5726,
"src": "397:14:13",
"stateVariable": false,

@@ -575,6 +600,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3506,
"id": 5706,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "398:5:11",
"src": "397:5:13",
"typeDescriptions": {

@@ -585,3 +610,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -591,7 +615,8 @@ },

"constant": false,
"id": 3509,
"id": 5709,
"mutability": "mutable",
"name": "E",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "414:14:11",
"scope": 5726,
"src": "413:14:13",
"stateVariable": false,

@@ -604,6 +629,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3508,
"id": 5708,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "414:5:11",
"src": "413:5:13",
"typeDescriptions": {

@@ -614,3 +639,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -620,7 +644,8 @@ },

"constant": false,
"id": 3511,
"id": 5711,
"mutability": "mutable",
"name": "S",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "430:14:11",
"scope": 5726,
"src": "429:14:13",
"stateVariable": false,

@@ -633,6 +658,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3510,
"id": 5710,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "430:5:11",
"src": "429:5:13",
"typeDescriptions": {

@@ -643,10 +668,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "397:48:11"
"src": "396:48:13"
},
"returnParameters": {
"id": 3517,
"id": 5717,
"nodeType": "ParameterList",

@@ -656,7 +680,8 @@ "parameters": [

"constant": false,
"id": 3514,
"id": 5714,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "469:4:11",
"scope": 5726,
"src": "468:4:13",
"stateVariable": false,

@@ -669,6 +694,6 @@ "storageLocation": "default",

"typeName": {
"id": 3513,
"id": 5713,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "469:4:11",
"src": "468:4:13",
"typeDescriptions": {

@@ -679,3 +704,2 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"

@@ -685,7 +709,8 @@ },

"constant": false,
"id": 3516,
"id": 5716,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3526,
"src": "475:12:11",
"scope": 5726,
"src": "474:12:13",
"stateVariable": false,

@@ -698,6 +723,6 @@ "storageLocation": "memory",

"typeName": {
"id": 3515,
"id": 5715,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "475:5:11",
"src": "474:5:13",
"typeDescriptions": {

@@ -708,34 +733,37 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "468:20:11"
"src": "467:20:13"
},
"scope": 3527,
"src": "378:167:11",
"scope": 5727,
"src": "377:167:13",
"stateMutability": "view",
"superFunction": null,
"virtual": false,
"visibility": "internal"
}
],
"scope": 3528,
"src": "88:459:11"
"scope": 5728,
"src": "87:459:13"
}
],
"src": "0:548:11"
"src": "0:547:13"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.386Z",
"schemaVersion": "3.3.2",
"updatedAt": "2021-01-27T15:35:30.277Z",
"devdoc": {
"methods": {}
"kind": "dev",
"methods": {},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "data",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "hash",

@@ -21,2 +22,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -26,42 +28,53 @@ "type": "bool"

],
"payable": false,
"stateMutability": "pure",
"type": "function"
"type": "function",
"constant": true
}
],
"bytecode": "0x608060405234801561001057600080fd5b506107a7806100206000396000f3fe608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b600080610194600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061021490919063ffffffff16565b6bffffffffffffffffffffffff1916905060006101f487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061025a565b9050806bffffffffffffffffffffffff1916821492505050949350505050565b60008251601483011115151561022957600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008260208501015116905092915050565b60006040518251602084019350604067ffffffffffffffc06001830116016009828203106001811461028b57610292565b6040820191505b50776745230100efcdab890098badcfe001032547600c3d2e1f06102ed565b6000809050838310156102e657828201519050828403935060208410156102e5576001846020036101000a03198082169150505b5b9392505050565b60005b828110156106fb576103038482896102b1565b85526103138460208301896102b1565b60208601526040818503106001811461032b57610334565b60808286038701535b506040830381146001811461034857610358565b6008850260208701511760208701525b5060405b60808110156103e45760408103860151603882038701511860208203870151600c830388015118187c010000000100000001000000010000000100000001000000010000000163800000008204167ffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe6002830216179050808288015250600c8101905061035c565b5060805b61014081101561047157608081038601516070820387015118604082038701516018830388015118187c030000000300000003000000030000000300000003000000030000000363400000008204167ffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc60048302161790508082880152506018810190506103e8565b508160008060005b60508110156106cd5760148104600081146104ab57600181146104f557600281146105325760038114610595576105ce565b6501000000000085046a01000000000000000000008604189350836f01000000000000000000000000000000860416935083650100000000008604189350635a82799992506105ce565b6a010000000000000000000085046f01000000000000000000000000000000860418935083650100000000008604189350636ed9eba192506105ce565b6a010000000000000000000085046f01000000000000000000000000000000860417935083650100000000008604169350836a010000000000000000000086046f01000000000000000000000000000000870416179350638f1bbcdc92506105ce565b6a010000000000000000000085046f0100000000000000000000000000000086041893508365010000000000860418935063ca62c1d692505b50601f770800000000000000000000000000000000000000000000008504168063ffffffe073080000000000000000000000000000000000000087041617905080840190508063ffffffff86160190508083019050807c0100000000000000000000000000000000000000000000000000000000600484028c0151040190507401000000000000000000000000000000000000000081026501000000000086041794506a0100000000000000000000633fffffff6a040000000000000000000087041663c00000006604000000000000880416170277ffffffff00ffffffff000000000000ffffffff00ffffffff861617945050600181019050610479565b5077ffffffff00ffffffff00ffffffff00ffffffff00ffffffff8386011694505050506040810190506102f0565b506c0100000000000000000000000063ffffffff821667ffffffff000000006101008404166bffffffff0000000000000000620100008504166fffffffff000000000000000000000000630100000086041673ffffffff00000000000000000000000000000000640100000000870416171717170294505050505091905056fea165627a7a72305820aa1f7e639a98ebbca741f12a6405d46d0e5ff85863662bcc45229d9527b47b070029",
"deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b600080610194600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061021490919063ffffffff16565b6bffffffffffffffffffffffff1916905060006101f487878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505061025a565b9050806bffffffffffffffffffffffff1916821492505050949350505050565b60008251601483011115151561022957600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008260208501015116905092915050565b60006040518251602084019350604067ffffffffffffffc06001830116016009828203106001811461028b57610292565b6040820191505b50776745230100efcdab890098badcfe001032547600c3d2e1f06102ed565b6000809050838310156102e657828201519050828403935060208410156102e5576001846020036101000a03198082169150505b5b9392505050565b60005b828110156106fb576103038482896102b1565b85526103138460208301896102b1565b60208601526040818503106001811461032b57610334565b60808286038701535b506040830381146001811461034857610358565b6008850260208701511760208701525b5060405b60808110156103e45760408103860151603882038701511860208203870151600c830388015118187c010000000100000001000000010000000100000001000000010000000163800000008204167ffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe6002830216179050808288015250600c8101905061035c565b5060805b61014081101561047157608081038601516070820387015118604082038701516018830388015118187c030000000300000003000000030000000300000003000000030000000363400000008204167ffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc60048302161790508082880152506018810190506103e8565b508160008060005b60508110156106cd5760148104600081146104ab57600181146104f557600281146105325760038114610595576105ce565b6501000000000085046a01000000000000000000008604189350836f01000000000000000000000000000000860416935083650100000000008604189350635a82799992506105ce565b6a010000000000000000000085046f01000000000000000000000000000000860418935083650100000000008604189350636ed9eba192506105ce565b6a010000000000000000000085046f01000000000000000000000000000000860417935083650100000000008604169350836a010000000000000000000086046f01000000000000000000000000000000870416179350638f1bbcdc92506105ce565b6a010000000000000000000085046f0100000000000000000000000000000086041893508365010000000000860418935063ca62c1d692505b50601f770800000000000000000000000000000000000000000000008504168063ffffffe073080000000000000000000000000000000000000087041617905080840190508063ffffffff86160190508083019050807c0100000000000000000000000000000000000000000000000000000000600484028c0151040190507401000000000000000000000000000000000000000081026501000000000086041794506a0100000000000000000000633fffffff6a040000000000000000000087041663c00000006604000000000000880416170277ffffffff00ffffffff000000000000ffffffff00ffffffff861617945050600181019050610479565b5077ffffffff00ffffffff00ffffffff00ffffffff00ffffffff8386011694505050506040810190506102f0565b506c0100000000000000000000000063ffffffff821667ffffffff000000006101008404166bffffffff0000000000000000620100008504166fffffffff000000000000000000000000630100000086041673ffffffff00000000000000000000000000000000640100000000870416171717170294505050505091905056fea165627a7a72305820aa1f7e639a98ebbca741f12a6405d46d0e5ff85863662bcc45229d9527b47b070029",
"sourceMap": "176:280:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;176:280:14;;;;;;;",
"deployedSourceMap": "176:280:14:-;;;;;;;;;;;;;;;;;;;;;;;;231:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;231:223:14;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;231:223:14;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;231:223:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;231:223:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;231:223:14;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;231:223:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;231:223:14;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;231:223:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;312:4;328:16;347:19;364:1;347:4;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;347:16:14;;;;;;;;:19;;;;:::i;:::-;328:38;;;;;376:16;395:15;405:4;;395:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;395:15:14;;;;;;:9;:15::i;:::-;376:34;;439:8;427:20;;;:8;:20;420:27;;;;231:223;;;;;;:::o;7041:287:0:-;7114:11;7157:4;:11;7151:2;7145:3;:8;:23;;7137:32;;;;;;;;7245:66;7238:3;7233:2;7227:4;7223:13;7219:23;7213:30;7209:103;7202:110;;7188:134;;;;:::o;74:5661:19:-;129:11;239:4;233:11;344:4;338:11;380:2;374:4;370:13;362:21;;500:2;479:18;475:1;470:3;466:11;462:36;458:45;546:1;540:3;530:8;526:18;523:25;566:1;561:40;;;;516:85;;561:40;596:2;586:8;582:17;570:29;;516:85;;624:50;688:425;;;;761:1;751:11;;790:5;785:3;782:14;779:2;;;844:3;839;835:13;829:20;819:30;;890:3;883:5;879:15;870:24;;928:2;921:5;918:13;915:2;;;1004:1;995:5;991:2;987:14;982:3;978:24;974:32;970:37;1054:4;1046:6;1042:17;1032:27;;932:149;915:2;779;733:380;;;;;;;1142:1;1127:4284;1152:8;1149:1;1146:15;1127:4284;;;1216:22;1234:3;1231:1;1225:4;1216:22;;;1207:7;1200:39;1281:31;1308:3;1303:2;1300:1;1296:10;1290:4;1281:31;;;1276:2;1267:7;1263:16;1256:57;1427:2;1423:1;1418:3;1414:11;1411:19;1452:1;1447:51;;;;1404:94;;1447:51;1491:4;1486:1;1481:3;1477:11;1468:7;1464:25;1456:40;1404:94;;1606:2;1596:8;1592:17;1589:1;1586:24;1632:1;1627:77;;;;1579:125;;1627:77;1698:1;1693:3;1689:11;1683:2;1674:7;1670:16;1664:23;1661:40;1656:2;1647:7;1643:16;1636:66;1579:125;;1791:2;1776:512;1802:3;1799:1;1796:10;1776:512;;;1999:2;1996:1;1992:10;1983:7;1979:24;1973:31;1966:2;1963:1;1959:10;1950:7;1946:24;1940:31;1936:69;1928:2;1925:1;1921:10;1912:7;1908:24;1902:31;1895:2;1892:1;1888:10;1879:7;1875:24;1869:31;1865:69;1861:145;2152:66;2139:10;2133:4;2129:21;2125:94;2056:66;2052:1;2046:4;2042:12;2038:85;2035:185;2027:193;;2265:4;2261:1;2252:7;2248:15;2241:29;1827:461;1821:2;1818:1;1814:10;1809:15;;1776:512;;;1780:15;2320:3;2305:515;2332:3;2329:1;2326:10;2305:515;;;2530:3;2527:1;2523:11;2514:7;2510:25;2504:32;2496:3;2493:1;2489:11;2480:7;2476:25;2470:32;2466:71;2458:2;2455:1;2451:10;2442:7;2438:24;2432:31;2425:2;2422:1;2418:10;2409:7;2405:24;2399:31;2395:69;2391:147;2684:66;2671:10;2665:4;2661:21;2657:94;2588:66;2584:1;2578:4;2574:12;2570:85;2567:185;2559:193;;2797:4;2793:1;2784:7;2780:15;2773:29;2357:463;2351:2;2348:1;2344:10;2339:15;;2305:515;;;2309:16;2847:1;2874;2901;2934;2919:2389;2944:2;2941:1;2938:9;2919:2389;;;3003:2;3000:1;2996:10;3032:1;3027:352;;;;3405:1;3400:282;;;;3708:1;3703:414;;;;4143:1;4138:283;;;;2989:1432;;3027:352;3164:13;3161:1;3157:21;3131:23;3128:1;3124:31;3120:59;3115:64;;3256:1;3220:33;3217:1;3213:41;3209:49;3204:54;;3315:1;3299:13;3296:1;3292:21;3288:29;3283:34;;3347:10;3342:15;;3027:352;;3400:282;3536:23;3533:1;3529:31;3493:33;3490:1;3486:41;3482:79;3477:84;;3618:1;3602:13;3599:1;3595:21;3591:29;3586:34;;3650:10;3645:15;;3400:282;;3703:414;3855:23;3852:1;3848:31;3812:33;3809:1;3805:41;3802:78;3797:83;;3937:1;3921:13;3918:1;3914:21;3910:29;3905:34;;4053:1;4026:23;4023:1;4019:31;3983:33;3980:1;3976:41;3972:79;3969:86;3964:91;;4085:10;4080:15;;3703:414;;4138:283;4275:23;4272:1;4268:31;4232:33;4229:1;4225:41;4221:79;4216:84;;4357:1;4341:13;4338:1;4334:21;4330:29;4325:34;;4389:10;4384:15;;2989:1432;;4583:4;4531:49;4528:1;4524:57;4520:68;4688:4;4675:10;4631:41;4628:1;4624:49;4620:66;4617:76;4609:84;;4729:4;4726:1;4722:12;4714:20;;4787:4;4774:10;4771:1;4767:18;4763:29;4755:37;;4828:4;4825:1;4821:12;4813:20;;4964:4;4902:59;4896:1;4893;4889:9;4880:7;4876:23;4870:30;4866:96;4862:107;4854:115;;5031:43;5025:4;5021:54;5005:13;5002:1;4998:21;4995:81;4990:86;;5265:23;5251:10;5225:23;5222:1;5218:31;5214:48;5201:10;5183:15;5180:1;5176:23;5172:40;5169:94;5165:124;5112:50;5109:1;5105:58;5102:188;5097:193;;2967:2341;2962:1;2959;2955:9;2950:14;;2919:2389;;;2923:14;5346:50;5342:1;5339;5335:9;5331:66;5326:71;;1182:4229;;;1176:2;1173:1;1169:10;1164:15;;1127:4284;;;1131:14;5691:27;5677:10;5674:1;5670:18;5648;5640:5;5637:1;5633:13;5629:38;5599:26;5589:7;5586:1;5582:15;5578:48;5540:34;5528:9;5525:1;5521:17;5517:58;5472:42;5458:11;5455:1;5451:19;5447:68;5444:132;5441:186;5438:230;5435:254;5431:288;5424:295;;161:5568;;;;;;;:::o",
"source": "pragma solidity >0.4.23;\n\nimport \"./Digest.sol\";\nimport \"../BytesUtils.sol\";\nimport \"@ensdomains/solsha1/contracts/SHA1.sol\";\n\n/**\n* @dev Implements the DNSSEC SHA1 digest.\n*/\ncontract SHA1Digest {\n using BytesUtils for *;\n\n function verify(bytes calldata data, bytes calldata hash) external pure returns (bool) {\n bytes32 expected = hash.readBytes20(0);\n bytes20 computed = SHA1.sha1(data);\n return expected == computed;\n }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA1Digest.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"hash\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements the DNSSEC SHA1 digest.\",\"kind\":\"dev\",\"methods\":{\"verify(bytes,bytes)\":{\"details\":\"Verifies a cryptographic hash.\",\"params\":{\"data\":\"The data to hash.\",\"hash\":\"The hash to compare to.\"},\"returns\":{\"_0\":\"True iff the hashed data matches the provided hash value.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA1Digest.sol\":\"SHA1Digest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x17b0123a981825ac9445ec82c8e20288321b27139518ba1f81c4cbd06f1312ab\",\"urls\":[\"bzz-raw://fe03e00240c645751873f38f56cc3db12d19a82538a0f0e9648ccfc23e8a715d\",\"dweb:/ipfs/QmbT7Q7GUgkZFY5gA4RxhWg3anPKiH9EZoM6HWBKDkK7dp\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol\":{\"keccak256\":\"0x10a3ed9231c6a7e16c5e673f8449f205c33df2a2cc4c09db0abac046abe6231e\",\"urls\":[\"bzz-raw://589c2266b6124c93c8410059d9f5902ca95d23a5e04961aa0c7489fcdc63e57c\",\"dweb:/ipfs/QmPKkuWhG6TtQXeEG5nTu8WukjeojqSMANqBgCFMf8fdnC\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA1Digest.sol\":{\"keccak256\":\"0xc4c644dfb2cbcecf31d8425395dd4fdf01c42d947a339415a1effd0ed9a79304\",\"urls\":[\"bzz-raw://ba90c056544b639b9da3cfc48d6fdf6af7be86cb2898fcc2e4824220bdd08b9f\",\"dweb:/ipfs/Qmec6CHBG5YJgU8WLBvedNSRmWKimiQ4WZspHPU5ErGwJy\"]},\"@ensdomains/solsha1/contracts/SHA1.sol\":{\"keccak256\":\"0xf400ebc75f77539e256b05773b840a1908b7c79ac39863ea8e80a3408c90a30a\",\"urls\":[\"bzz-raw://7b2ff0c33b4215ce9eb2343ae83b8ed15a2d8b76c0d91c864ed691b15ad5a4b9\",\"dweb:/ipfs/Qme6LYwQDT1zcKzNjaFZssUKrhMNZoT1qPn4sw5ZckGp7c\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b50610787806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b60008061016f600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101ef90919063ffffffff16565b6bffffffffffffffffffffffff1916905060006101cf87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610233565b9050806bffffffffffffffffffffffff1916821492505050949350505050565b6000825160148301111561020257600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008260208501015116905092915050565b60006040518251602084019350604067ffffffffffffffc0600183011601600982820310600181146102645761026b565b6040820191505b50776745230100efcdab890098badcfe001032547600c3d2e1f06102c3565b6000838310156102bc57828201519050828403935060208410156102bb576001846020036101000a03198082169150505b5b9392505050565b60005b828110156106d1576102d984828961028a565b85526102e984602083018961028a565b6020860152604081850310600181146103015761030a565b60808286038701535b506040830381146001811461031e5761032e565b6008850260208701511760208701525b5060405b60808110156103ba5760408103860151603882038701511860208203870151600c830388015118187c010000000100000001000000010000000100000001000000010000000163800000008204167ffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe6002830216179050808288015250600c81019050610332565b5060805b61014081101561044757608081038601516070820387015118604082038701516018830388015118187c030000000300000003000000030000000300000003000000030000000363400000008204167ffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc60048302161790508082880152506018810190506103be565b508160008060005b60508110156106a357601481046000811461048157600181146104cb5760028114610508576003811461056b576105a4565b6501000000000085046a01000000000000000000008604189350836f01000000000000000000000000000000860416935083650100000000008604189350635a82799992506105a4565b6a010000000000000000000085046f01000000000000000000000000000000860418935083650100000000008604189350636ed9eba192506105a4565b6a010000000000000000000085046f01000000000000000000000000000000860417935083650100000000008604169350836a010000000000000000000086046f01000000000000000000000000000000870416179350638f1bbcdc92506105a4565b6a010000000000000000000085046f0100000000000000000000000000000086041893508365010000000000860418935063ca62c1d692505b50601f770800000000000000000000000000000000000000000000008504168063ffffffe073080000000000000000000000000000000000000087041617905080840190508063ffffffff86160190508083019050807c0100000000000000000000000000000000000000000000000000000000600484028c0151040190507401000000000000000000000000000000000000000081026501000000000086041794506a0100000000000000000000633fffffff6a040000000000000000000087041663c00000006604000000000000880416170277ffffffff00ffffffff000000000000ffffffff00ffffffff86161794505060018101905061044f565b5077ffffffff00ffffffff00ffffffff00ffffffff00ffffffff8386011694505050506040810190506102c6565b506c0100000000000000000000000063ffffffff821667ffffffff000000006101008404166bffffffff0000000000000000620100008504166fffffffff000000000000000000000000630100000086041673ffffffff00000000000000000000000000000000640100000000870416171717170294505050505091905056fea2646970667358221220924af778e414b5f4a21f616507b5aea3f48615642e2485975859bbc9acc4e42c64736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b60008061016f600085858080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101ef90919063ffffffff16565b6bffffffffffffffffffffffff1916905060006101cf87878080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050610233565b9050806bffffffffffffffffffffffff1916821492505050949350505050565b6000825160148301111561020257600080fd5b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008260208501015116905092915050565b60006040518251602084019350604067ffffffffffffffc0600183011601600982820310600181146102645761026b565b6040820191505b50776745230100efcdab890098badcfe001032547600c3d2e1f06102c3565b6000838310156102bc57828201519050828403935060208410156102bb576001846020036101000a03198082169150505b5b9392505050565b60005b828110156106d1576102d984828961028a565b85526102e984602083018961028a565b6020860152604081850310600181146103015761030a565b60808286038701535b506040830381146001811461031e5761032e565b6008850260208701511760208701525b5060405b60808110156103ba5760408103860151603882038701511860208203870151600c830388015118187c010000000100000001000000010000000100000001000000010000000163800000008204167ffffffffefffffffefffffffefffffffefffffffefffffffefffffffefffffffe6002830216179050808288015250600c81019050610332565b5060805b61014081101561044757608081038601516070820387015118604082038701516018830388015118187c030000000300000003000000030000000300000003000000030000000363400000008204167ffffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffcfffffffc60048302161790508082880152506018810190506103be565b508160008060005b60508110156106a357601481046000811461048157600181146104cb5760028114610508576003811461056b576105a4565b6501000000000085046a01000000000000000000008604189350836f01000000000000000000000000000000860416935083650100000000008604189350635a82799992506105a4565b6a010000000000000000000085046f01000000000000000000000000000000860418935083650100000000008604189350636ed9eba192506105a4565b6a010000000000000000000085046f01000000000000000000000000000000860417935083650100000000008604169350836a010000000000000000000086046f01000000000000000000000000000000870416179350638f1bbcdc92506105a4565b6a010000000000000000000085046f0100000000000000000000000000000086041893508365010000000000860418935063ca62c1d692505b50601f770800000000000000000000000000000000000000000000008504168063ffffffe073080000000000000000000000000000000000000087041617905080840190508063ffffffff86160190508083019050807c0100000000000000000000000000000000000000000000000000000000600484028c0151040190507401000000000000000000000000000000000000000081026501000000000086041794506a0100000000000000000000633fffffff6a040000000000000000000087041663c00000006604000000000000880416170277ffffffff00ffffffff000000000000ffffffff00ffffffff86161794505060018101905061044f565b5077ffffffff00ffffffff00ffffffff00ffffffff00ffffffff8386011694505050506040810190506102c6565b506c0100000000000000000000000063ffffffff821667ffffffff000000006101008404166bffffffff0000000000000000620100008504166fffffffff000000000000000000000000630100000086041673ffffffff00000000000000000000000000000000640100000000870416171717170294505050505091905056fea2646970667358221220924af778e414b5f4a21f616507b5aea3f48615642e2485975859bbc9acc4e42c64736f6c63430007040033",
"immutableReferences": {},
"sourceMap": "175:299:16:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "175:299:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:232;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;330:4;346:16;365:19;382:1;365:4;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;;:::i;:::-;346:38;;;;;394:16;413:15;423:4;;413:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;:15::i;:::-;394:34;;457:8;445:20;;;:8;:20;438:27;;;;240:232;;;;;;:::o;7040:287:0:-;7113:11;7156:4;:11;7150:2;7144:3;:8;:23;;7136:32;;;;;;7244:66;7237:3;7232:2;7226:4;7222:13;7218:23;7212:30;7208:103;7201:110;;7187:134;;;;:::o;74:5661:21:-;129:11;239:4;233:11;344:4;338:11;380:2;374:4;370:13;362:21;;500:2;479:18;475:1;470:3;466:11;462:36;458:45;546:1;540:3;530:8;526:18;523:25;566:1;561:40;;;;516:85;;561:40;596:2;586:8;582:17;570:29;;516:85;;624:50;688:425;;;;790:5;785:3;782:14;779:2;;;844:3;839;835:13;829:20;819:30;;890:3;883:5;879:15;870:24;;928:2;921:5;918:13;915:2;;;1004:1;995:5;991:2;987:14;982:3;978:24;974:32;970:37;1054:4;1046:6;1042:17;1032:27;;932:149;915:2;779;733:380;;;;;:::o;:::-;1142:1;1127:4284;1152:8;1149:1;1146:15;1127:4284;;;1216:22;1234:3;1231:1;1225:4;1216:22;:::i;:::-;1207:7;1200:39;1281:31;1308:3;1303:2;1300:1;1296:10;1290:4;1281:31;:::i;:::-;1276:2;1267:7;1263:16;1256:57;1427:2;1423:1;1418:3;1414:11;1411:19;1452:1;1447:51;;;;1404:94;;1447:51;1491:4;1486:1;1481:3;1477:11;1468:7;1464:25;1456:40;1404:94;;1606:2;1596:8;1592:17;1589:1;1586:24;1632:1;1627:77;;;;1579:125;;1627:77;1698:1;1693:3;1689:11;1683:2;1674:7;1670:16;1664:23;1661:40;1656:2;1647:7;1643:16;1636:66;1579:125;;1791:2;1776:512;1802:3;1799:1;1796:10;1776:512;;;1999:2;1996:1;1992:10;1983:7;1979:24;1973:31;1966:2;1963:1;1959:10;1950:7;1946:24;1940:31;1936:69;1928:2;1925:1;1921:10;1912:7;1908:24;1902:31;1895:2;1892:1;1888:10;1879:7;1875:24;1869:31;1865:69;1861:145;2152:66;2139:10;2133:4;2129:21;2125:94;2056:66;2052:1;2046:4;2042:12;2038:85;2035:185;2027:193;;2265:4;2261:1;2252:7;2248:15;2241:29;1827:461;1821:2;1818:1;1814:10;1809:15;;1776:512;;;1780:15;2320:3;2305:515;2332:3;2329:1;2326:10;2305:515;;;2530:3;2527:1;2523:11;2514:7;2510:25;2504:32;2496:3;2493:1;2489:11;2480:7;2476:25;2470:32;2466:71;2458:2;2455:1;2451:10;2442:7;2438:24;2432:31;2425:2;2422:1;2418:10;2409:7;2405:24;2399:31;2395:69;2391:147;2684:66;2671:10;2665:4;2661:21;2657:94;2588:66;2584:1;2578:4;2574:12;2570:85;2567:185;2559:193;;2797:4;2793:1;2784:7;2780:15;2773:29;2357:463;2351:2;2348:1;2344:10;2339:15;;2305:515;;;2309:16;2847:1;2874;2901;2934;2919:2389;2944:2;2941:1;2938:9;2919:2389;;;3003:2;3000:1;2996:10;3032:1;3027:352;;;;3405:1;3400:282;;;;3708:1;3703:414;;;;4143:1;4138:283;;;;2989:1432;;3027:352;3164:13;3161:1;3157:21;3131:23;3128:1;3124:31;3120:59;3115:64;;3256:1;3220:33;3217:1;3213:41;3209:49;3204:54;;3315:1;3299:13;3296:1;3292:21;3288:29;3283:34;;3347:10;3342:15;;3027:352;;3400:282;3536:23;3533:1;3529:31;3493:33;3490:1;3486:41;3482:79;3477:84;;3618:1;3602:13;3599:1;3595:21;3591:29;3586:34;;3650:10;3645:15;;3400:282;;3703:414;3855:23;3852:1;3848:31;3812:33;3809:1;3805:41;3802:78;3797:83;;3937:1;3921:13;3918:1;3914:21;3910:29;3905:34;;4053:1;4026:23;4023:1;4019:31;3983:33;3980:1;3976:41;3972:79;3969:86;3964:91;;4085:10;4080:15;;3703:414;;4138:283;4275:23;4272:1;4268:31;4232:33;4229:1;4225:41;4221:79;4216:84;;4357:1;4341:13;4338:1;4334:21;4330:29;4325:34;;4389:10;4384:15;;2989:1432;;4583:4;4531:49;4528:1;4524:57;4520:68;4688:4;4675:10;4631:41;4628:1;4624:49;4620:66;4617:76;4609:84;;4729:4;4726:1;4722:12;4714:20;;4787:4;4774:10;4771:1;4767:18;4763:29;4755:37;;4828:4;4825:1;4821:12;4813:20;;4964:4;4902:59;4896:1;4893;4889:9;4880:7;4876:23;4870:30;4866:96;4862:107;4854:115;;5031:43;5025:4;5021:54;5005:13;5002:1;4998:21;4995:81;4990:86;;5265:23;5251:10;5225:23;5222:1;5218:31;5214:48;5201:10;5183:15;5180:1;5176:23;5172:40;5169:94;5165:124;5112:50;5109:1;5105:58;5102:188;5097:193;;2967:2341;2962:1;2959;2955:9;2950:14;;2919:2389;;;2923:14;5346:50;5342:1;5339;5335:9;5331:66;5326:71;;1182:4229;;;1176:2;1173:1;1169:10;1164:15;;1127:4284;;;1131:14;5691:27;5677:10;5674:1;5670:18;5648;5640:5;5637:1;5633:13;5629:38;5599:26;5589:7;5586:1;5582:15;5578:48;5540:34;5528:9;5525:1;5521:17;5517:58;5472:42;5458:11;5455:1;5451:19;5447:68;5444:132;5441:186;5438:230;5435:254;5431:288;5424:295;;161:5568;;;;;;;:::o",
"source": "pragma solidity ^0.7.4;\n\nimport \"./Digest.sol\";\nimport \"../BytesUtils.sol\";\nimport \"@ensdomains/solsha1/contracts/SHA1.sol\";\n\n/**\n* @dev Implements the DNSSEC SHA1 digest.\n*/\ncontract SHA1Digest is Digest {\n using BytesUtils for *;\n\n function verify(bytes calldata data, bytes calldata hash) external override pure returns (bool) {\n bytes32 expected = hash.readBytes20(0);\n bytes20 computed = SHA1.sha1(data);\n return expected == computed;\n }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA1Digest.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA1Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA1Digest.sol",
"exportedSymbols": {
"BytesUtils": [
730
],
"Digest": [
5741
],
"SHA1": [
6448
],
"SHA1Digest": [
3593
5801
]
},
"id": 3594,
"id": 5802,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3559,
"id": 5763,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:14"
"src": "0:23:16"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3560,
"id": 5764,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 3540,
"src": "26:22:14",
"scope": 5802,
"sourceUnit": 5742,
"src": "25:22:16",
"symbolAliases": [],

@@ -71,9 +84,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3561,
"id": 5765,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 721,
"src": "49:27:14",
"scope": 5802,
"sourceUnit": 731,
"src": "48:27:16",
"symbolAliases": [],

@@ -85,7 +98,7 @@ "unitAlias": ""

"file": "@ensdomains/solsha1/contracts/SHA1.sol",
"id": 3562,
"id": 5766,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 4225,
"src": "77:48:14",
"scope": 5802,
"sourceUnit": 6449,
"src": "76:48:16",
"symbolAliases": [],

@@ -95,10 +108,36 @@ "unitAlias": ""

{
"baseContracts": [],
"contractDependencies": [],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 5768,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5741,
"src": "198:6:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 5769,
"nodeType": "InheritanceSpecifier",
"src": "198:6:16"
}
],
"contractDependencies": [
5741
],
"contractKind": "contract",
"documentation": "@dev Implements the DNSSEC SHA1 digest.",
"documentation": {
"id": 5767,
"nodeType": "StructuredDocumentation",
"src": "126:48:16",
"text": " @dev Implements the DNSSEC SHA1 digest."
},
"fullyImplemented": true,
"id": 3593,
"id": 5801,
"linearizedBaseContracts": [
3593
5801,
5741
],

@@ -109,12 +148,11 @@ "name": "SHA1Digest",

{
"id": 3564,
"id": 5771,
"libraryName": {
"contractScope": null,
"id": 3563,
"id": 5770,
"name": "BytesUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 720,
"src": "208:10:14",
"referencedDeclaration": 730,
"src": "217:10:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesUtils_$720",
"typeIdentifier": "t_contract$_BytesUtils_$730",
"typeString": "library BytesUtils"

@@ -124,14 +162,16 @@ }

"nodeType": "UsingForDirective",
"src": "202:23:14",
"typeName": null
"src": "211:23:16"
},
{
"baseFunctions": [
5740
],
"body": {
"id": 3591,
"id": 5799,
"nodeType": "Block",
"src": "318:136:14",
"src": "336:136:16",
"statements": [
{
"assignments": [
3574
5782
],

@@ -141,7 +181,8 @@ "declarations": [

"constant": false,
"id": 3574,
"id": 5782,
"mutability": "mutable",
"name": "expected",
"nodeType": "VariableDeclaration",
"scope": 3591,
"src": "328:16:14",
"scope": 5799,
"src": "346:16:16",
"stateVariable": false,

@@ -154,6 +195,6 @@ "storageLocation": "default",

"typeName": {
"id": 3573,
"id": 5781,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "328:7:14",
"src": "346:7:16",
"typeDescriptions": {

@@ -164,14 +205,11 @@ "typeIdentifier": "t_bytes32",

},
"value": null,
"visibility": "internal"
}
],
"id": 3579,
"id": 5787,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3577,
"id": 5785,
"isConstant": false,

@@ -183,4 +221,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "364:1:14",
"subdenomination": null,
"src": "382:1:16",
"typeDescriptions": {

@@ -201,9 +238,8 @@ "typeIdentifier": "t_rational_0_by_1",

"expression": {
"argumentTypes": null,
"id": 3575,
"id": 5783,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3568,
"src": "347:4:14",
"referencedDeclaration": 5775,
"src": "365:4:16",
"typeDescriptions": {

@@ -214,3 +250,3 @@ "typeIdentifier": "t_bytes_calldata_ptr",

},
"id": 3576,
"id": 5784,
"isConstant": false,

@@ -222,4 +258,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 386,
"src": "347:16:14",
"referencedDeclaration": 391,
"src": "365:16:16",
"typeDescriptions": {

@@ -230,3 +266,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes20_$bound_to$_t_bytes_memory_ptr_$",

},
"id": 3578,
"id": 5786,
"isConstant": false,

@@ -239,3 +275,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "347:19:14",
"src": "365:19:16",
"tryCall": false,
"typeDescriptions": {

@@ -247,7 +284,7 @@ "typeIdentifier": "t_bytes20",

"nodeType": "VariableDeclarationStatement",
"src": "328:38:14"
"src": "346:38:16"
},
{
"assignments": [
3581
5789
],

@@ -257,7 +294,8 @@ "declarations": [

"constant": false,
"id": 3581,
"id": 5789,
"mutability": "mutable",
"name": "computed",
"nodeType": "VariableDeclaration",
"scope": 3591,
"src": "376:16:14",
"scope": 5799,
"src": "394:16:16",
"stateVariable": false,

@@ -270,6 +308,6 @@ "storageLocation": "default",

"typeName": {
"id": 3580,
"id": 5788,
"name": "bytes20",
"nodeType": "ElementaryTypeName",
"src": "376:7:14",
"src": "394:7:16",
"typeDescriptions": {

@@ -280,18 +318,15 @@ "typeIdentifier": "t_bytes20",

},
"value": null,
"visibility": "internal"
}
],
"id": 3586,
"id": 5794,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3584,
"id": 5792,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3566,
"src": "405:4:14",
"referencedDeclaration": 5773,
"src": "423:4:16",
"typeDescriptions": {

@@ -311,15 +346,14 @@ "typeIdentifier": "t_bytes_calldata_ptr",

"expression": {
"argumentTypes": null,
"id": 3582,
"id": 5790,
"name": "SHA1",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4224,
"src": "395:4:14",
"referencedDeclaration": 6448,
"src": "413:4:16",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SHA1_$4224_$",
"typeIdentifier": "t_type$_t_contract$_SHA1_$6448_$",
"typeString": "type(library SHA1)"
}
},
"id": 3583,
"id": 5791,
"isConstant": false,

@@ -331,4 +365,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 4223,
"src": "395:9:14",
"referencedDeclaration": 6447,
"src": "413:9:16",
"typeDescriptions": {

@@ -339,3 +373,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes20_$",

},
"id": 3585,
"id": 5793,
"isConstant": false,

@@ -348,3 +382,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "395:15:14",
"src": "413:15:16",
"tryCall": false,
"typeDescriptions": {

@@ -356,7 +391,6 @@ "typeIdentifier": "t_bytes20",

"nodeType": "VariableDeclarationStatement",
"src": "376:34:14"
"src": "394:34:16"
},
{
"expression": {
"argumentTypes": null,
"commonType": {

@@ -366,3 +400,3 @@ "typeIdentifier": "t_bytes32",

},
"id": 3589,
"id": 5797,
"isConstant": false,

@@ -373,9 +407,8 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"id": 3587,
"id": 5795,
"name": "expected",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3574,
"src": "427:8:14",
"referencedDeclaration": 5782,
"src": "445:8:16",
"typeDescriptions": {

@@ -389,9 +422,8 @@ "typeIdentifier": "t_bytes32",

"rightExpression": {
"argumentTypes": null,
"id": 3588,
"id": 5796,
"name": "computed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3581,
"src": "439:8:14",
"referencedDeclaration": 5789,
"src": "457:8:16",
"typeDescriptions": {

@@ -402,3 +434,3 @@ "typeIdentifier": "t_bytes20",

},
"src": "427:20:14",
"src": "445:20:16",
"typeDescriptions": {

@@ -409,11 +441,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3572,
"id": 3590,
"functionReturnParameters": 5780,
"id": 5798,
"nodeType": "Return",
"src": "420:27:14"
"src": "438:27:16"
}
]
},
"documentation": null,
"id": 3592,
"functionSelector": "f7e83aee",
"id": 5800,
"implemented": true,

@@ -424,4 +456,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5777,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "307:8:16"
},
"parameters": {
"id": 3569,
"id": 5776,
"nodeType": "ParameterList",

@@ -431,7 +469,8 @@ "parameters": [

"constant": false,
"id": 3566,
"id": 5773,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "247:19:14",
"scope": 5800,
"src": "256:19:16",
"stateVariable": false,

@@ -444,6 +483,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3565,
"id": 5772,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "247:5:14",
"src": "256:5:16",
"typeDescriptions": {

@@ -454,3 +493,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -460,7 +498,8 @@ },

"constant": false,
"id": 3568,
"id": 5775,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "268:19:14",
"scope": 5800,
"src": "277:19:16",
"stateVariable": false,

@@ -473,6 +512,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3567,
"id": 5774,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "268:5:14",
"src": "277:5:16",
"typeDescriptions": {

@@ -483,10 +522,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "246:42:14"
"src": "255:42:16"
},
"returnParameters": {
"id": 3572,
"id": 5780,
"nodeType": "ParameterList",

@@ -496,7 +534,8 @@ "parameters": [

"constant": false,
"id": 3571,
"id": 5779,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "312:4:14",
"scope": 5800,
"src": "330:4:16",
"stateVariable": false,

@@ -509,6 +548,6 @@ "storageLocation": "default",

"typeName": {
"id": 3570,
"id": 5778,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "312:4:14",
"src": "330:4:16",
"typeDescriptions": {

@@ -519,50 +558,58 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "311:6:14"
"src": "329:6:16"
},
"scope": 3593,
"src": "231:223:14",
"scope": 5801,
"src": "240:232:16",
"stateMutability": "pure",
"superFunction": null,
"virtual": false,
"visibility": "external"
}
],
"scope": 3594,
"src": "176:280:14"
"scope": 5802,
"src": "175:299:16"
}
],
"src": "0:457:14"
"src": "0:475:16"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA1Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA1Digest.sol",
"exportedSymbols": {
"BytesUtils": [
730
],
"Digest": [
5741
],
"SHA1": [
6448
],
"SHA1Digest": [
3593
5801
]
},
"id": 3594,
"id": 5802,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3559,
"id": 5763,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:14"
"src": "0:23:16"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3560,
"id": 5764,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 3540,
"src": "26:22:14",
"scope": 5802,
"sourceUnit": 5742,
"src": "25:22:16",
"symbolAliases": [],

@@ -572,9 +619,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3561,
"id": 5765,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 721,
"src": "49:27:14",
"scope": 5802,
"sourceUnit": 731,
"src": "48:27:16",
"symbolAliases": [],

@@ -586,7 +633,7 @@ "unitAlias": ""

"file": "@ensdomains/solsha1/contracts/SHA1.sol",
"id": 3562,
"id": 5766,
"nodeType": "ImportDirective",
"scope": 3594,
"sourceUnit": 4225,
"src": "77:48:14",
"scope": 5802,
"sourceUnit": 6449,
"src": "76:48:16",
"symbolAliases": [],

@@ -596,10 +643,36 @@ "unitAlias": ""

{
"baseContracts": [],
"contractDependencies": [],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 5768,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5741,
"src": "198:6:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 5769,
"nodeType": "InheritanceSpecifier",
"src": "198:6:16"
}
],
"contractDependencies": [
5741
],
"contractKind": "contract",
"documentation": "@dev Implements the DNSSEC SHA1 digest.",
"documentation": {
"id": 5767,
"nodeType": "StructuredDocumentation",
"src": "126:48:16",
"text": " @dev Implements the DNSSEC SHA1 digest."
},
"fullyImplemented": true,
"id": 3593,
"id": 5801,
"linearizedBaseContracts": [
3593
5801,
5741
],

@@ -610,12 +683,11 @@ "name": "SHA1Digest",

{
"id": 3564,
"id": 5771,
"libraryName": {
"contractScope": null,
"id": 3563,
"id": 5770,
"name": "BytesUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 720,
"src": "208:10:14",
"referencedDeclaration": 730,
"src": "217:10:16",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesUtils_$720",
"typeIdentifier": "t_contract$_BytesUtils_$730",
"typeString": "library BytesUtils"

@@ -625,14 +697,16 @@ }

"nodeType": "UsingForDirective",
"src": "202:23:14",
"typeName": null
"src": "211:23:16"
},
{
"baseFunctions": [
5740
],
"body": {
"id": 3591,
"id": 5799,
"nodeType": "Block",
"src": "318:136:14",
"src": "336:136:16",
"statements": [
{
"assignments": [
3574
5782
],

@@ -642,7 +716,8 @@ "declarations": [

"constant": false,
"id": 3574,
"id": 5782,
"mutability": "mutable",
"name": "expected",
"nodeType": "VariableDeclaration",
"scope": 3591,
"src": "328:16:14",
"scope": 5799,
"src": "346:16:16",
"stateVariable": false,

@@ -655,6 +730,6 @@ "storageLocation": "default",

"typeName": {
"id": 3573,
"id": 5781,
"name": "bytes32",
"nodeType": "ElementaryTypeName",
"src": "328:7:14",
"src": "346:7:16",
"typeDescriptions": {

@@ -665,14 +740,11 @@ "typeIdentifier": "t_bytes32",

},
"value": null,
"visibility": "internal"
}
],
"id": 3579,
"id": 5787,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3577,
"id": 5785,
"isConstant": false,

@@ -684,4 +756,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "364:1:14",
"subdenomination": null,
"src": "382:1:16",
"typeDescriptions": {

@@ -702,9 +773,8 @@ "typeIdentifier": "t_rational_0_by_1",

"expression": {
"argumentTypes": null,
"id": 3575,
"id": 5783,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3568,
"src": "347:4:14",
"referencedDeclaration": 5775,
"src": "365:4:16",
"typeDescriptions": {

@@ -715,3 +785,3 @@ "typeIdentifier": "t_bytes_calldata_ptr",

},
"id": 3576,
"id": 5784,
"isConstant": false,

@@ -723,4 +793,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 386,
"src": "347:16:14",
"referencedDeclaration": 391,
"src": "365:16:16",
"typeDescriptions": {

@@ -731,3 +801,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes20_$bound_to$_t_bytes_memory_ptr_$",

},
"id": 3578,
"id": 5786,
"isConstant": false,

@@ -740,3 +810,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "347:19:14",
"src": "365:19:16",
"tryCall": false,
"typeDescriptions": {

@@ -748,7 +819,7 @@ "typeIdentifier": "t_bytes20",

"nodeType": "VariableDeclarationStatement",
"src": "328:38:14"
"src": "346:38:16"
},
{
"assignments": [
3581
5789
],

@@ -758,7 +829,8 @@ "declarations": [

"constant": false,
"id": 3581,
"id": 5789,
"mutability": "mutable",
"name": "computed",
"nodeType": "VariableDeclaration",
"scope": 3591,
"src": "376:16:14",
"scope": 5799,
"src": "394:16:16",
"stateVariable": false,

@@ -771,6 +843,6 @@ "storageLocation": "default",

"typeName": {
"id": 3580,
"id": 5788,
"name": "bytes20",
"nodeType": "ElementaryTypeName",
"src": "376:7:14",
"src": "394:7:16",
"typeDescriptions": {

@@ -781,18 +853,15 @@ "typeIdentifier": "t_bytes20",

},
"value": null,
"visibility": "internal"
}
],
"id": 3586,
"id": 5794,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3584,
"id": 5792,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3566,
"src": "405:4:14",
"referencedDeclaration": 5773,
"src": "423:4:16",
"typeDescriptions": {

@@ -812,15 +881,14 @@ "typeIdentifier": "t_bytes_calldata_ptr",

"expression": {
"argumentTypes": null,
"id": 3582,
"id": 5790,
"name": "SHA1",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4224,
"src": "395:4:14",
"referencedDeclaration": 6448,
"src": "413:4:16",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_SHA1_$4224_$",
"typeIdentifier": "t_type$_t_contract$_SHA1_$6448_$",
"typeString": "type(library SHA1)"
}
},
"id": 3583,
"id": 5791,
"isConstant": false,

@@ -832,4 +900,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 4223,
"src": "395:9:14",
"referencedDeclaration": 6447,
"src": "413:9:16",
"typeDescriptions": {

@@ -840,3 +908,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes20_$",

},
"id": 3585,
"id": 5793,
"isConstant": false,

@@ -849,3 +917,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "395:15:14",
"src": "413:15:16",
"tryCall": false,
"typeDescriptions": {

@@ -857,7 +926,6 @@ "typeIdentifier": "t_bytes20",

"nodeType": "VariableDeclarationStatement",
"src": "376:34:14"
"src": "394:34:16"
},
{
"expression": {
"argumentTypes": null,
"commonType": {

@@ -867,3 +935,3 @@ "typeIdentifier": "t_bytes32",

},
"id": 3589,
"id": 5797,
"isConstant": false,

@@ -874,9 +942,8 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"id": 3587,
"id": 5795,
"name": "expected",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3574,
"src": "427:8:14",
"referencedDeclaration": 5782,
"src": "445:8:16",
"typeDescriptions": {

@@ -890,9 +957,8 @@ "typeIdentifier": "t_bytes32",

"rightExpression": {
"argumentTypes": null,
"id": 3588,
"id": 5796,
"name": "computed",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3581,
"src": "439:8:14",
"referencedDeclaration": 5789,
"src": "457:8:16",
"typeDescriptions": {

@@ -903,3 +969,3 @@ "typeIdentifier": "t_bytes20",

},
"src": "427:20:14",
"src": "445:20:16",
"typeDescriptions": {

@@ -910,11 +976,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3572,
"id": 3590,
"functionReturnParameters": 5780,
"id": 5798,
"nodeType": "Return",
"src": "420:27:14"
"src": "438:27:16"
}
]
},
"documentation": null,
"id": 3592,
"functionSelector": "f7e83aee",
"id": 5800,
"implemented": true,

@@ -925,4 +991,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5777,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "307:8:16"
},
"parameters": {
"id": 3569,
"id": 5776,
"nodeType": "ParameterList",

@@ -932,7 +1004,8 @@ "parameters": [

"constant": false,
"id": 3566,
"id": 5773,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "247:19:14",
"scope": 5800,
"src": "256:19:16",
"stateVariable": false,

@@ -945,6 +1018,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3565,
"id": 5772,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "247:5:14",
"src": "256:5:16",
"typeDescriptions": {

@@ -955,3 +1028,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -961,7 +1033,8 @@ },

"constant": false,
"id": 3568,
"id": 5775,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "268:19:14",
"scope": 5800,
"src": "277:19:16",
"stateVariable": false,

@@ -974,6 +1047,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3567,
"id": 5774,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "268:5:14",
"src": "277:5:16",
"typeDescriptions": {

@@ -984,10 +1057,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "246:42:14"
"src": "255:42:16"
},
"returnParameters": {
"id": 3572,
"id": 5780,
"nodeType": "ParameterList",

@@ -997,7 +1069,8 @@ "parameters": [

"constant": false,
"id": 3571,
"id": 5779,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3592,
"src": "312:4:14",
"scope": 5800,
"src": "330:4:16",
"stateVariable": false,

@@ -1010,6 +1083,6 @@ "storageLocation": "default",

"typeName": {
"id": 3570,
"id": 5778,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "312:4:14",
"src": "330:4:16",
"typeDescriptions": {

@@ -1020,42 +1093,57 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "311:6:14"
"src": "329:6:16"
},
"scope": 3593,
"src": "231:223:14",
"scope": 5801,
"src": "240:232:16",
"stateMutability": "pure",
"superFunction": null,
"virtual": false,
"visibility": "external"
}
],
"scope": 3594,
"src": "176:280:14"
"scope": 5802,
"src": "175:299:16"
}
],
"src": "0:457:14"
"src": "0:475:16"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {
"3": {
"1611767306216": {
"events": {},
"links": {},
"address": "0x3d24f19d339c191aae1ee0ca6ea68d6c56a48f51",
"transactionHash": "0x62febe5a1dc9b135bff84e7d4ccc1d52f4aa983d51e190658057e14783176e64"
"address": "0x0BF4229F60B26Cff8ef7A9b5a179dFECBF36B5dd",
"transactionHash": "0x9bfe2a0e05e5f7b198ec9b642900df87db974fa71cb577161b6352e098ee31cc"
}
},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.391Z",
"schemaVersion": "3.2.3",
"updatedAt": "2021-01-27T17:10:41.809Z",
"networkType": "ethereum",
"devdoc": {
"details": "Implements the DNSSEC SHA1 digest.",
"methods": {}
"kind": "dev",
"methods": {
"verify(bytes,bytes)": {
"details": "Verifies a cryptographic hash.",
"params": {
"data": "The data to hash.",
"hash": "The hash to compare to."
},
"returns": {
"_0": "True iff the hashed data matches the provided hash value."
}
}
},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}

@@ -5,5 +5,5 @@ {

{
"constant": true,
"inputs": [
{
"internalType": "bytes",
"name": "data",

@@ -13,2 +13,3 @@ "type": "bytes"

{
"internalType": "bytes",
"name": "hash",

@@ -21,2 +22,3 @@ "type": "bytes"

{
"internalType": "bool",
"name": "",

@@ -26,42 +28,50 @@ "type": "bool"

],
"payable": false,
"stateMutability": "pure",
"type": "function"
"type": "function",
"constant": true
}
],
"bytecode": "0x608060405234801561001057600080fd5b5061024a806100206000396000f3fe608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b6000610193600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101fa90919063ffffffff16565b60028686604051808383808284378083019250505092505050602060405180830381855afa1580156101c9573d6000803e3d6000fd5b5050506040513d60208110156101de57600080fd5b8101908080519060200190929190505050149050949350505050565b60008251602083011115151561020f57600080fd5b8160208401015190509291505056fea165627a7a72305820d9d7ef1956d05f63d18810694997f7ec00745c098fbbe4ae1fc4a4a5cedbfb4e0029",
"deployedBytecode": "0x608060405260043610610041576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063f7e83aee14610046575b600080fd5b34801561005257600080fd5b5061011f6004803603604081101561006957600080fd5b810190808035906020019064010000000081111561008657600080fd5b82018360208201111561009857600080fd5b803590602001918460018302840111640100000000831117156100ba57600080fd5b9091929391929390803590602001906401000000008111156100db57600080fd5b8201836020820111156100ed57600080fd5b8035906020019184600183028401116401000000008311171561010f57600080fd5b9091929391929390505050610139565b604051808215151515815260200191505060405180910390f35b6000610193600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101fa90919063ffffffff16565b60028686604051808383808284378083019250505092505050602060405180830381855afa1580156101c9573d6000803e3d6000fd5b5050506040513d60208110156101de57600080fd5b8101908080519060200190929190505050149050949350505050565b60008251602083011115151561020f57600080fd5b8160208401015190509291505056fea165627a7a72305820d9d7ef1956d05f63d18810694997f7ec00745c098fbbe4ae1fc4a4a5cedbfb4e0029",
"sourceMap": "129:215:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;129:215:15;;;;;;;",
"deployedSourceMap": "129:215:15:-;;;;;;;;;;;;;;;;;;;;;;;;196:146;;8:9:-1;5:2;;;30:1;27;20:12;5:2;196:146:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;196:146:15;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;196:146:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;196:146:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;196:146:15;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;196:146:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;196:146:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;196:146:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;277:4;316:19;333:1;316:4;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;316:16:15;;;;;;;;:19;;;;:::i;:::-;300:12;307:4;;300:12;;;;;30:3:-1;22:6;14;1:33;57:3;49:6;45:16;35:26;;300:12:15;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;300:12:15;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;300:12:15;;;;;;;;;;;;;;;;:35;293:42;;196:146;;;;;;:::o;6609:214:0:-;6682:11;6725:4;:11;6719:2;6713:3;:8;:23;;6705:32;;;;;;;;6802:3;6797:2;6791:4;6787:13;6783:23;6777:30;6770:37;;6756:61;;;;:::o",
"source": "pragma solidity >0.4.23;\n\nimport \"./Digest.sol\";\nimport \"../BytesUtils.sol\";\n\n/**\n* @dev Implements the DNSSEC SHA256 digest.\n*/\ncontract SHA256Digest is Digest {\n using BytesUtils for *;\n\n function verify(bytes calldata data, bytes calldata hash) external pure returns (bool) {\n return sha256(data) == hash.readBytes32(0);\n }\n}\n",
"sourcePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA256Digest.sol",
"metadata": "{\"compiler\":{\"version\":\"0.7.4+commit.3f05b770\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"hash\",\"type\":\"bytes\"}],\"name\":\"verify\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implements the DNSSEC SHA256 digest.\",\"kind\":\"dev\",\"methods\":{\"verify(bytes,bytes)\":{\"details\":\"Verifies a cryptographic hash.\",\"params\":{\"data\":\"The data to hash.\",\"hash\":\"The hash to compare to.\"},\"returns\":{\"_0\":\"True iff the hashed data matches the provided hash value.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA256Digest.sol\":\"SHA256Digest\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol\":{\"keccak256\":\"0x17b0123a981825ac9445ec82c8e20288321b27139518ba1f81c4cbd06f1312ab\",\"urls\":[\"bzz-raw://fe03e00240c645751873f38f56cc3db12d19a82538a0f0e9648ccfc23e8a715d\",\"dweb:/ipfs/QmbT7Q7GUgkZFY5gA4RxhWg3anPKiH9EZoM6HWBKDkK7dp\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol\":{\"keccak256\":\"0x10a3ed9231c6a7e16c5e673f8449f205c33df2a2cc4c09db0abac046abe6231e\",\"urls\":[\"bzz-raw://589c2266b6124c93c8410059d9f5902ca95d23a5e04961aa0c7489fcdc63e57c\",\"dweb:/ipfs/QmPKkuWhG6TtQXeEG5nTu8WukjeojqSMANqBgCFMf8fdnC\"]},\"/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA256Digest.sol\":{\"keccak256\":\"0x6720a841b5ed79d4debab9aa4af3575f1c4ac15e21188b32b3d684cae69203fc\",\"urls\":[\"bzz-raw://2d52b3028fb97c3a802b1489020005bb022b82a0e9a1d2e0c7588a38e98a0fb0\",\"dweb:/ipfs/QmcszWHGF6AYmpcidba86NvQezdSgRahkdvevxhfPNbZ4i\"]}},\"version\":1}",
"bytecode": "0x608060405234801561001057600080fd5b5061022d806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b600061016e600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101d590919063ffffffff16565b60028686604051808383808284378083019250505092505050602060405180830381855afa1580156101a4573d6000803e3d6000fd5b5050506040513d60208110156101b957600080fd5b8101908080519060200190929190505050149050949350505050565b600082516020830111156101e857600080fd5b8160208401015190509291505056fea264697066735822122080d99e8e80587cb7479d0d83625f98e4a6d68dc4715fafbb93371a9b15322a4864736f6c63430007040033",
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063f7e83aee14610030575b600080fd5b6100fc6004803603604081101561004657600080fd5b810190808035906020019064010000000081111561006357600080fd5b82018360208201111561007557600080fd5b8035906020019184600183028401116401000000008311171561009757600080fd5b9091929391929390803590602001906401000000008111156100b857600080fd5b8201836020820111156100ca57600080fd5b803590602001918460018302840111640100000000831117156100ec57600080fd5b9091929391929390505050610114565b60405180821515815260200191505060405180910390f35b600061016e600084848080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506101d590919063ffffffff16565b60028686604051808383808284378083019250505092505050602060405180830381855afa1580156101a4573d6000803e3d6000fd5b5050506040513d60208110156101b957600080fd5b8101908080519060200190929190505050149050949350505050565b600082516020830111156101e857600080fd5b8160208401015190509291505056fea264697066735822122080d99e8e80587cb7479d0d83625f98e4a6d68dc4715fafbb93371a9b15322a4864736f6c63430007040033",
"immutableReferences": {},
"sourceMap": "128:224:17:-:0;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "128:224:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;195:155;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;285:4;324:19;341:1;324:4;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:19;;;;:::i;:::-;308:12;315:4;;308:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:35;301:42;;195:155;;;;;;:::o;6608:214:0:-;6681:11;6724:4;:11;6718:2;6712:3;:8;:23;;6704:32;;;;;;6801:3;6796:2;6790:4;6786:13;6782:23;6776:30;6769:37;;6755:61;;;;:::o",
"source": "pragma solidity ^0.7.4;\n\nimport \"./Digest.sol\";\nimport \"../BytesUtils.sol\";\n\n/**\n* @dev Implements the DNSSEC SHA256 digest.\n*/\ncontract SHA256Digest is Digest {\n using BytesUtils for *;\n\n function verify(bytes calldata data, bytes calldata hash) external override pure returns (bool) {\n return sha256(data) == hash.readBytes32(0);\n }\n}\n",
"sourcePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA256Digest.sol",
"ast": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA256Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA256Digest.sol",
"exportedSymbols": {
"BytesUtils": [
730
],
"Digest": [
5741
],
"SHA256Digest": [
3621
5831
]
},
"id": 3622,
"id": 5832,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3595,
"id": 5803,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:15"
"src": "0:23:17"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3596,
"id": 5804,
"nodeType": "ImportDirective",
"scope": 3622,
"sourceUnit": 3540,
"src": "26:22:15",
"scope": 5832,
"sourceUnit": 5742,
"src": "25:22:17",
"symbolAliases": [],

@@ -71,9 +81,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3597,
"id": 5805,
"nodeType": "ImportDirective",
"scope": 3622,
"sourceUnit": 721,
"src": "49:27:15",
"scope": 5832,
"sourceUnit": 731,
"src": "48:27:17",
"symbolAliases": [],

@@ -83,32 +93,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3598,
"id": 5807,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3539,
"src": "154:6:15",
"referencedDeclaration": 5741,
"src": "153:6:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$3539",
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 3599,
"id": 5808,
"nodeType": "InheritanceSpecifier",
"src": "154:6:15"
"src": "153:6:17"
}
],
"contractDependencies": [
3539
5741
],
"contractKind": "contract",
"documentation": "@dev Implements the DNSSEC SHA256 digest.",
"documentation": {
"id": 5806,
"nodeType": "StructuredDocumentation",
"src": "77:50:17",
"text": " @dev Implements the DNSSEC SHA256 digest."
},
"fullyImplemented": true,
"id": 3621,
"id": 5831,
"linearizedBaseContracts": [
3621,
3539
5831,
5741
],

@@ -119,12 +133,11 @@ "name": "SHA256Digest",

{
"id": 3601,
"id": 5810,
"libraryName": {
"contractScope": null,
"id": 3600,
"id": 5809,
"name": "BytesUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 720,
"src": "173:10:15",
"referencedDeclaration": 730,
"src": "172:10:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesUtils_$720",
"typeIdentifier": "t_contract$_BytesUtils_$730",
"typeString": "library BytesUtils"

@@ -134,14 +147,15 @@ }

"nodeType": "UsingForDirective",
"src": "167:23:15",
"typeName": null
"src": "166:23:17"
},
{
"baseFunctions": [
5740
],
"body": {
"id": 3619,
"id": 5829,
"nodeType": "Block",
"src": "283:59:15",
"src": "291:59:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {

@@ -151,3 +165,3 @@ "typeIdentifier": "t_bytes32",

},
"id": 3617,
"id": 5827,
"isConstant": false,

@@ -158,12 +172,10 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3611,
"id": 5821,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3603,
"src": "307:4:15",
"referencedDeclaration": 5812,
"src": "315:4:17",
"typeDescriptions": {

@@ -182,8 +194,8 @@ "typeIdentifier": "t_bytes_calldata_ptr",

],
"id": 3610,
"id": 5820,
"name": "sha256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "300:6:15",
"referencedDeclaration": -22,
"src": "308:6:17",
"typeDescriptions": {

@@ -194,3 +206,3 @@ "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",

},
"id": 3612,
"id": 5822,
"isConstant": false,

@@ -203,3 +215,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "300:12:15",
"src": "308:12:17",
"tryCall": false,
"typeDescriptions": {

@@ -213,8 +226,6 @@ "typeIdentifier": "t_bytes32",

"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3615,
"id": 5825,
"isConstant": false,

@@ -226,4 +237,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "333:1:15",
"subdenomination": null,
"src": "341:1:17",
"typeDescriptions": {

@@ -244,9 +254,8 @@ "typeIdentifier": "t_rational_0_by_1",

"expression": {
"argumentTypes": null,
"id": 3613,
"id": 5823,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3605,
"src": "316:4:15",
"referencedDeclaration": 5814,
"src": "324:4:17",
"typeDescriptions": {

@@ -257,3 +266,3 @@ "typeIdentifier": "t_bytes_calldata_ptr",

},
"id": 3614,
"id": 5824,
"isConstant": false,

@@ -265,4 +274,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 366,
"src": "316:16:15",
"referencedDeclaration": 371,
"src": "324:16:17",
"typeDescriptions": {

@@ -273,3 +282,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",

},
"id": 3616,
"id": 5826,
"isConstant": false,

@@ -282,3 +291,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "316:19:15",
"src": "324:19:17",
"tryCall": false,
"typeDescriptions": {

@@ -289,3 +299,3 @@ "typeIdentifier": "t_bytes32",

},
"src": "300:35:15",
"src": "308:35:17",
"typeDescriptions": {

@@ -296,11 +306,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3609,
"id": 3618,
"functionReturnParameters": 5819,
"id": 5828,
"nodeType": "Return",
"src": "293:42:15"
"src": "301:42:17"
}
]
},
"documentation": null,
"id": 3620,
"functionSelector": "f7e83aee",
"id": 5830,
"implemented": true,

@@ -311,4 +321,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5816,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "262:8:17"
},
"parameters": {
"id": 3606,
"id": 5815,
"nodeType": "ParameterList",

@@ -318,7 +334,8 @@ "parameters": [

"constant": false,
"id": 3603,
"id": 5812,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "212:19:15",
"scope": 5830,
"src": "211:19:17",
"stateVariable": false,

@@ -331,6 +348,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3602,
"id": 5811,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "212:5:15",
"src": "211:5:17",
"typeDescriptions": {

@@ -341,3 +358,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -347,7 +363,8 @@ },

"constant": false,
"id": 3605,
"id": 5814,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "233:19:15",
"scope": 5830,
"src": "232:19:17",
"stateVariable": false,

@@ -360,6 +377,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3604,
"id": 5813,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "233:5:15",
"src": "232:5:17",
"typeDescriptions": {

@@ -370,10 +387,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "211:42:15"
"src": "210:42:17"
},
"returnParameters": {
"id": 3609,
"id": 5819,
"nodeType": "ParameterList",

@@ -383,7 +399,8 @@ "parameters": [

"constant": false,
"id": 3608,
"id": 5818,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "277:4:15",
"scope": 5830,
"src": "285:4:17",
"stateVariable": false,

@@ -396,6 +413,6 @@ "storageLocation": "default",

"typeName": {
"id": 3607,
"id": 5817,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "277:4:15",
"src": "285:4:17",
"typeDescriptions": {

@@ -406,50 +423,55 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "276:6:15"
"src": "284:6:17"
},
"scope": 3621,
"src": "196:146:15",
"scope": 5831,
"src": "195:155:17",
"stateMutability": "pure",
"superFunction": 3538,
"virtual": false,
"visibility": "external"
}
],
"scope": 3622,
"src": "129:215:15"
"scope": 5832,
"src": "128:224:17"
}
],
"src": "0:345:15"
"src": "0:353:17"
},
"legacyAST": {
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/SHA256Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/SHA256Digest.sol",
"exportedSymbols": {
"BytesUtils": [
730
],
"Digest": [
5741
],
"SHA256Digest": [
3621
5831
]
},
"id": 3622,
"id": 5832,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 3595,
"id": 5803,
"literals": [
"solidity",
">",
"0.4",
".23"
"^",
"0.7",
".4"
],
"nodeType": "PragmaDirective",
"src": "0:24:15"
"src": "0:23:17"
},
{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/digests/Digest.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/digests/Digest.sol",
"file": "./Digest.sol",
"id": 3596,
"id": 5804,
"nodeType": "ImportDirective",
"scope": 3622,
"sourceUnit": 3540,
"src": "26:22:15",
"scope": 5832,
"sourceUnit": 5742,
"src": "25:22:17",
"symbolAliases": [],

@@ -459,9 +481,9 @@ "unitAlias": ""

{
"absolutePath": "/home/user/Dropbox/projects/enssec/contracts/BytesUtils.sol",
"absolutePath": "/Users/makoto/work/ens/dnssec-oracle/contracts/BytesUtils.sol",
"file": "../BytesUtils.sol",
"id": 3597,
"id": 5805,
"nodeType": "ImportDirective",
"scope": 3622,
"sourceUnit": 721,
"src": "49:27:15",
"scope": 5832,
"sourceUnit": 731,
"src": "48:27:17",
"symbolAliases": [],

@@ -471,32 +493,36 @@ "unitAlias": ""

{
"abstract": false,
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 3598,
"id": 5807,
"name": "Digest",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 3539,
"src": "154:6:15",
"referencedDeclaration": 5741,
"src": "153:6:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Digest_$3539",
"typeIdentifier": "t_contract$_Digest_$5741",
"typeString": "contract Digest"
}
},
"id": 3599,
"id": 5808,
"nodeType": "InheritanceSpecifier",
"src": "154:6:15"
"src": "153:6:17"
}
],
"contractDependencies": [
3539
5741
],
"contractKind": "contract",
"documentation": "@dev Implements the DNSSEC SHA256 digest.",
"documentation": {
"id": 5806,
"nodeType": "StructuredDocumentation",
"src": "77:50:17",
"text": " @dev Implements the DNSSEC SHA256 digest."
},
"fullyImplemented": true,
"id": 3621,
"id": 5831,
"linearizedBaseContracts": [
3621,
3539
5831,
5741
],

@@ -507,12 +533,11 @@ "name": "SHA256Digest",

{
"id": 3601,
"id": 5810,
"libraryName": {
"contractScope": null,
"id": 3600,
"id": 5809,
"name": "BytesUtils",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 720,
"src": "173:10:15",
"referencedDeclaration": 730,
"src": "172:10:17",
"typeDescriptions": {
"typeIdentifier": "t_contract$_BytesUtils_$720",
"typeIdentifier": "t_contract$_BytesUtils_$730",
"typeString": "library BytesUtils"

@@ -522,14 +547,15 @@ }

"nodeType": "UsingForDirective",
"src": "167:23:15",
"typeName": null
"src": "166:23:17"
},
{
"baseFunctions": [
5740
],
"body": {
"id": 3619,
"id": 5829,
"nodeType": "Block",
"src": "283:59:15",
"src": "291:59:17",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {

@@ -539,3 +565,3 @@ "typeIdentifier": "t_bytes32",

},
"id": 3617,
"id": 5827,
"isConstant": false,

@@ -546,12 +572,10 @@ "isLValue": false,

"leftExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 3611,
"id": 5821,
"name": "data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3603,
"src": "307:4:15",
"referencedDeclaration": 5812,
"src": "315:4:17",
"typeDescriptions": {

@@ -570,8 +594,8 @@ "typeIdentifier": "t_bytes_calldata_ptr",

],
"id": 3610,
"id": 5820,
"name": "sha256",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4248,
"src": "300:6:15",
"referencedDeclaration": -22,
"src": "308:6:17",
"typeDescriptions": {

@@ -582,3 +606,3 @@ "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",

},
"id": 3612,
"id": 5822,
"isConstant": false,

@@ -591,3 +615,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "300:12:15",
"src": "308:12:17",
"tryCall": false,
"typeDescriptions": {

@@ -601,8 +626,6 @@ "typeIdentifier": "t_bytes32",

"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 3615,
"id": 5825,
"isConstant": false,

@@ -614,4 +637,3 @@ "isLValue": false,

"nodeType": "Literal",
"src": "333:1:15",
"subdenomination": null,
"src": "341:1:17",
"typeDescriptions": {

@@ -632,9 +654,8 @@ "typeIdentifier": "t_rational_0_by_1",

"expression": {
"argumentTypes": null,
"id": 3613,
"id": 5823,
"name": "hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 3605,
"src": "316:4:15",
"referencedDeclaration": 5814,
"src": "324:4:17",
"typeDescriptions": {

@@ -645,3 +666,3 @@ "typeIdentifier": "t_bytes_calldata_ptr",

},
"id": 3614,
"id": 5824,
"isConstant": false,

@@ -653,4 +674,4 @@ "isLValue": false,

"nodeType": "MemberAccess",
"referencedDeclaration": 366,
"src": "316:16:15",
"referencedDeclaration": 371,
"src": "324:16:17",
"typeDescriptions": {

@@ -661,3 +682,3 @@ "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$bound_to$_t_bytes_memory_ptr_$",

},
"id": 3616,
"id": 5826,
"isConstant": false,

@@ -670,3 +691,4 @@ "isLValue": false,

"nodeType": "FunctionCall",
"src": "316:19:15",
"src": "324:19:17",
"tryCall": false,
"typeDescriptions": {

@@ -677,3 +699,3 @@ "typeIdentifier": "t_bytes32",

},
"src": "300:35:15",
"src": "308:35:17",
"typeDescriptions": {

@@ -684,11 +706,11 @@ "typeIdentifier": "t_bool",

},
"functionReturnParameters": 3609,
"id": 3618,
"functionReturnParameters": 5819,
"id": 5828,
"nodeType": "Return",
"src": "293:42:15"
"src": "301:42:17"
}
]
},
"documentation": null,
"id": 3620,
"functionSelector": "f7e83aee",
"id": 5830,
"implemented": true,

@@ -699,4 +721,10 @@ "kind": "function",

"nodeType": "FunctionDefinition",
"overrides": {
"id": 5816,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "262:8:17"
},
"parameters": {
"id": 3606,
"id": 5815,
"nodeType": "ParameterList",

@@ -706,7 +734,8 @@ "parameters": [

"constant": false,
"id": 3603,
"id": 5812,
"mutability": "mutable",
"name": "data",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "212:19:15",
"scope": 5830,
"src": "211:19:17",
"stateVariable": false,

@@ -719,6 +748,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3602,
"id": 5811,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "212:5:15",
"src": "211:5:17",
"typeDescriptions": {

@@ -729,3 +758,2 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"

@@ -735,7 +763,8 @@ },

"constant": false,
"id": 3605,
"id": 5814,
"mutability": "mutable",
"name": "hash",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "233:19:15",
"scope": 5830,
"src": "232:19:17",
"stateVariable": false,

@@ -748,6 +777,6 @@ "storageLocation": "calldata",

"typeName": {
"id": 3604,
"id": 5813,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "233:5:15",
"src": "232:5:17",
"typeDescriptions": {

@@ -758,10 +787,9 @@ "typeIdentifier": "t_bytes_storage_ptr",

},
"value": null,
"visibility": "internal"
}
],
"src": "211:42:15"
"src": "210:42:17"
},
"returnParameters": {
"id": 3609,
"id": 5819,
"nodeType": "ParameterList",

@@ -771,7 +799,8 @@ "parameters": [

"constant": false,
"id": 3608,
"id": 5818,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 3620,
"src": "277:4:15",
"scope": 5830,
"src": "285:4:17",
"stateVariable": false,

@@ -784,6 +813,6 @@ "storageLocation": "default",

"typeName": {
"id": 3607,
"id": 5817,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "277:4:15",
"src": "285:4:17",
"typeDescriptions": {

@@ -794,42 +823,57 @@ "typeIdentifier": "t_bool",

},
"value": null,
"visibility": "internal"
}
],
"src": "276:6:15"
"src": "284:6:17"
},
"scope": 3621,
"src": "196:146:15",
"scope": 5831,
"src": "195:155:17",
"stateMutability": "pure",
"superFunction": 3538,
"virtual": false,
"visibility": "external"
}
],
"scope": 3622,
"src": "129:215:15"
"scope": 5832,
"src": "128:224:17"
}
],
"src": "0:345:15"
"src": "0:353:17"
},
"compiler": {
"name": "solc",
"version": "0.5.0+commit.1d4f565a.Emscripten.clang"
"version": "0.7.4+commit.3f05b770.Emscripten.clang"
},
"networks": {
"3": {
"1611767306216": {
"events": {},
"links": {},
"address": "0x10ac642283eed683ed86636352d03a7ca73fbfb5",
"transactionHash": "0x152b876d5b0f4f7561062f0fdc1d0dc64d26d6f7bef54a483972acd3a4d039c2"
"address": "0xA47b9D846D03E74C736D650dfb23D085C773AFCE",
"transactionHash": "0x1a605202fdd6f0bcd4faa3155cb52df7d06ed55b0456b52065b097b00d1214a0"
}
},
"schemaVersion": "3.0.1",
"updatedAt": "2019-03-12T23:08:21.387Z",
"schemaVersion": "3.2.3",
"updatedAt": "2021-01-27T17:10:41.810Z",
"networkType": "ethereum",
"devdoc": {
"details": "Implements the DNSSEC SHA256 digest.",
"methods": {}
"kind": "dev",
"methods": {
"verify(bytes,bytes)": {
"details": "Verifies a cryptographic hash.",
"params": {
"data": "The data to hash.",
"hash": "The hash to compare to."
},
"returns": {
"_0": "True iff the hashed data matches the provided hash value."
}
}
},
"version": 1
},
"userdoc": {
"methods": {}
"kind": "user",
"methods": {},
"version": 1
}
}
{
"name": "@ensdomains/contracts",
"version": "0.0.1",
"version": "0.0.2",
"description": "Collection of varios smart contracts\"",

@@ -5,0 +5,0 @@ "scripts": {

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc