diff --git a/.eslintrc.js b/.eslintrc.js
index 7e1a3647f..c3c2fae8c 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -6,7 +6,7 @@ module.exports = {
extends: ['airbnb/base', 'prettier'],
parserOptions: {
sourceType: 'module',
- ecmaVersion: 2017,
+ ecmaVersion: 2021,
},
rules: {
'linebreak-style': ['error', 'unix'],
@@ -19,4 +19,12 @@ module.exports = {
'no-continue': 1,
'no-underscore-dangle': 0,
},
+ "overrides": [
+ {
+ "files": ["*.test.js", "*.spec.js"],
+ "rules": {
+ "no-unused-expressions": "off"
+ }
+ }
+ ]
};
diff --git a/.gitignore b/.gitignore
index 3fce756f4..493ced682 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,4 @@
# Logs
-logs
*.log
npm-debug.log*
yarn-debug.log*
@@ -108,4 +107,5 @@ dist
.DS_Store
-data
+data*
+.vscode/launch.json
diff --git a/.husky/pre-commit b/.husky/pre-commit
index eb0b00061..57757f4ed 100755
--- a/.husky/pre-commit
+++ b/.husky/pre-commit
@@ -1,4 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
-#npm run lint-staged
+npm run lint-staged
diff --git a/.origintrail_noderc_example b/.origintrail_noderc_example
deleted file mode 100644
index 0c855bc79..000000000
--- a/.origintrail_noderc_example
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "blockchain": [
- {
- "blockchainTitle": "Polygon",
- "networkId": "polygon::testnet",
- "rpcEndpoints": [
- "https://rpc-mumbai.maticvigil.com/",
- "https://matic-mumbai.chainstacklabs.com",
- "https://rpc-mumbai.matic.today",
- ],
- "publicKey": "...",
- "privateKey": "..."
- }
- ],
- "graphDatabase": {
- "username": "admin",
- "password": ""
- },
- "logLevel": "trace",
- "rpcPort": 8900,
- "network": {},
- "ipWhitelist": [
- "::1",
- "127.0.0.1"
- ]
-}
diff --git a/build/contracts/Context.json b/build/contracts/Context.json
deleted file mode 100644
index c81357294..000000000
--- a/build/contracts/Context.json
+++ /dev/null
@@ -1,596 +0,0 @@
-{
- "contractName": "Context",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/utils/Context.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n",
- "sourcePath": "openzeppelin-solidity/contracts/utils/Context.sol",
- "ast": {
- "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol",
- "exportedSymbols": {
- "Context": [
- 565
- ]
- },
- "id": 566,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 544,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "33:31:3"
- },
- {
- "abstract": true,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 565,
- "linearizedBaseContracts": [
- 565
- ],
- "name": "Context",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 552,
- "nodeType": "Block",
- "src": "668:34:3",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 549,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "685:3:3",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 550,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "685:10:3",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "functionReturnParameters": 548,
- "id": 551,
- "nodeType": "Return",
- "src": "678:17:3"
- }
- ]
- },
- "documentation": null,
- "id": 553,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_msgSender",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 545,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "617:2:3"
- },
- "returnParameters": {
- "id": 548,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 547,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 553,
- "src": "651:15:3",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- "typeName": {
- "id": 546,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "651:15:3",
- "stateMutability": "payable",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "650:17:3"
- },
- "scope": 565,
- "src": "598:104:3",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 563,
- "nodeType": "Block",
- "src": "773:165:3",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 558,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -28,
- "src": "783:4:3",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Context_$565",
- "typeString": "contract Context"
- }
- },
- "id": 559,
- "nodeType": "ExpressionStatement",
- "src": "783:4:3"
- },
- {
- "expression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 560,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "923:3:3",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 561,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "data",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "923:8:3",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_calldata_ptr",
- "typeString": "bytes calldata"
- }
- },
- "functionReturnParameters": 557,
- "id": 562,
- "nodeType": "Return",
- "src": "916:15:3"
- }
- ]
- },
- "documentation": null,
- "id": 564,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "_msgData",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 554,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "725:2:3"
- },
- "returnParameters": {
- "id": 557,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 556,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 564,
- "src": "759:12:3",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_memory_ptr",
- "typeString": "bytes"
- },
- "typeName": {
- "id": 555,
- "name": "bytes",
- "nodeType": "ElementaryTypeName",
- "src": "759:5:3",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes_storage_ptr",
- "typeString": "bytes"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "758:14:3"
- },
- "scope": 565,
- "src": "708:230:3",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- }
- ],
- "scope": 566,
- "src": "566:374:3"
- }
- ],
- "src": "33:908:3"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol",
- "exportedSymbols": {
- "Context": [
- 565
- ]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 544,
- "name": "PragmaDirective",
- "src": "33:31:3"
- },
- {
- "attributes": {
- "abstract": true,
- "baseContracts": [
- null
- ],
- "contractDependencies": [
- null
- ],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 565
- ],
- "name": "Context",
- "scope": 566
- },
- "children": [
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "_msgSender",
- "overrides": null,
- "scope": 565,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 545,
- "name": "ParameterList",
- "src": "617:2:3"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 553,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address payable",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "payable",
- "type": "address payable"
- },
- "id": 546,
- "name": "ElementaryTypeName",
- "src": "651:15:3"
- }
- ],
- "id": 547,
- "name": "VariableDeclaration",
- "src": "651:15:3"
- }
- ],
- "id": 548,
- "name": "ParameterList",
- "src": "650:17:3"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 548
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 549,
- "name": "Identifier",
- "src": "685:3:3"
- }
- ],
- "id": 550,
- "name": "MemberAccess",
- "src": "685:10:3"
- }
- ],
- "id": 551,
- "name": "Return",
- "src": "678:17:3"
- }
- ],
- "id": 552,
- "name": "Block",
- "src": "668:34:3"
- }
- ],
- "id": 553,
- "name": "FunctionDefinition",
- "src": "598:104:3"
- },
- {
- "attributes": {
- "documentation": null,
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "_msgData",
- "overrides": null,
- "scope": 565,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 554,
- "name": "ParameterList",
- "src": "725:2:3"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 564,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "bytes",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes",
- "type": "bytes"
- },
- "id": 555,
- "name": "ElementaryTypeName",
- "src": "759:5:3"
- }
- ],
- "id": 556,
- "name": "VariableDeclaration",
- "src": "759:12:3"
- }
- ],
- "id": 557,
- "name": "ParameterList",
- "src": "758:14:3"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -28,
- "type": "contract Context",
- "value": "this"
- },
- "id": 558,
- "name": "Identifier",
- "src": "783:4:3"
- }
- ],
- "id": 559,
- "name": "ExpressionStatement",
- "src": "783:4:3"
- },
- {
- "attributes": {
- "functionReturnParameters": 557
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "data",
- "referencedDeclaration": null,
- "type": "bytes calldata"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 560,
- "name": "Identifier",
- "src": "923:3:3"
- }
- ],
- "id": 561,
- "name": "MemberAccess",
- "src": "923:8:3"
- }
- ],
- "id": 562,
- "name": "Return",
- "src": "916:15:3"
- }
- ],
- "id": 563,
- "name": "Block",
- "src": "773:165:3"
- }
- ],
- "id": 564,
- "name": "FunctionDefinition",
- "src": "708:230:3"
- }
- ],
- "id": 565,
- "name": "ContractDefinition",
- "src": "566:374:3"
- }
- ],
- "id": 566,
- "name": "SourceUnit",
- "src": "33:908:3"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.4.3",
- "updatedAt": "2021-10-13T15:44:47.630Z",
- "devdoc": {
- "methods": {}
- },
- "userdoc": {
- "methods": {}
- }
-}
\ No newline at end of file
diff --git a/build/contracts/DKGcontract.json b/build/contracts/DKGcontract.json
deleted file mode 100644
index 78a927e6a..000000000
--- a/build/contracts/DKGcontract.json
+++ /dev/null
@@ -1,9124 +0,0 @@
-{
- "contractName": "DKGcontract",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "token_address",
- "type": "address"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionIssuer",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "numberOfEpochs",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "assertionTimeToLive",
- "type": "uint256"
- }
- ],
- "name": "AssertionCreated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "token",
- "type": "address"
- }
- ],
- "name": "TokenAddressSet",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "TokensCollected",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- }
- ],
- "name": "VerificationFailed",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "TRAC_TOKEN_ADDRESS",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- },
- {
- "internalType": "address",
- "name": "issuer",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "numberOfEpochs",
- "type": "uint256"
- },
- {
- "internalType": "uint256",
- "name": "assertionTimeToLive",
- "type": "uint256"
- }
- ],
- "name": "createAssertionRecord",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "epochAssertionProof",
- "type": "bytes32"
- },
- {
- "internalType": "uint256",
- "name": "epochNumber",
- "type": "uint256"
- }
- ],
- "name": "submitHoldingProof",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "epochAssertionProof",
- "type": "bytes32"
- }
- ],
- "name": "verifyAssertionProof",
- "outputs": [
- {
- "internalType": "bool",
- "name": "proofValid",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- }
- ],
- "name": "getAssertionIssuer",
- "outputs": [
- {
- "internalType": "address",
- "name": "creator",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- }
- ],
- "name": "getAssertionRootHash",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- }
- ],
- "name": "getAssertionTimeToLive",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "timeToLive",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- }
- ],
- "name": "getAssertionNumberOfEpochs",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "numberOfEpochs",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- }
- ],
- "name": "getAssertionTask",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "task",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_address\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assertionIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numberOfEpochs\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"assertionTimeToLive\",\"type\":\"uint256\"}],\"name\":\"AssertionCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"TokenAddressSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokensCollected\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"prover\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"VerificationFailed\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TRAC_TOKEN_ADDRESS\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numberOfEpochs\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"assertionTimeToLive\",\"type\":\"uint256\"}],\"name\":\"createAssertionRecord\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"}],\"name\":\"getAssertionIssuer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"}],\"name\":\"getAssertionNumberOfEpochs\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfEpochs\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"}],\"name\":\"getAssertionRootHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"getAssertionTask\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"task\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"}],\"name\":\"getAssertionTimeToLive\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timeToLive\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"epochAssertionProof\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"epochNumber\",\"type\":\"uint256\"}],\"name\":\"submitHoldingProof\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"assertionID\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"epochAssertionProof\",\"type\":\"bytes32\"}],\"name\":\"verifyAssertionProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"proofValid\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/DKGcontract.sol\":\"DKGcontract\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"openzeppelin-solidity/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"project:/contracts/DKGcontract.sol\":{\"keccak256\":\"0xea0c3c1edba3277ff8a18e50b054ab4d2e1f9434b2554270a4cccb3edb0d9ef3\",\"urls\":[\"bzz-raw://259759777c8a56dae6f5980dd9b6a27725636643e6cc54b0fd6e6f3e997176c6\",\"dweb:/ipfs/QmWzcVDUJ8ymwT6dYd15VhpyZsB9WeCs9BeomSVxr5Cer7\"]}},\"version\":1}",
- "bytecode": "0x608060405234801561001057600080fd5b506040516110423803806110428339818101604052602081101561003357600080fd5b810190808051906020019092919050505060006100546101f760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561012c57600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fd82cad5fdc98633445b90f806f2e1a61a5409f92187ee9cd87f1da18c906926660405160405180910390a2506101ff565b600033905090565b610e348061020e6000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c80638f9cd32b116100715780638f9cd32b1461022b5780639e50e72c1461025f578063b934b4e4146102a1578063ce64c643146102e3578063f164c43614610325578063f2fde38b14610391576100b4565b80630828e9f3146100b957806308c4933b14610111578063193f9c7e1461015d5780636988bc03146101ab578063715018a6146101ed5780638da5cb5b146101f7575b600080fd5b6100e5600480360360208110156100cf57600080fd5b81019080803590602001909291905050506103d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101476004803603604081101561012757600080fd5b810190808035906020019092919080359060200190929190505050610412565b6040518082815260200191505060405180910390f35b6101936004803603604081101561017357600080fd5b81019080803590602001909291908035906020019092919050505061041d565b60405180821515815260200191505060405180910390f35b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610429565b6040518082815260200191505060405180910390f35b6101f5610449565b005b6101ff6105b6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102336105df565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61028b6004803603602081101561027557600080fd5b8101908080359060200190929190505050610605565b6040518082815260200191505060405180910390f35b6102cd600480360360208110156102b757600080fd5b8101908080359060200190929190505050610625565b6040518082815260200191505060405180910390f35b610323600480360360608110156102f957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610645565b005b61038f600480360360a081101561033b57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506107ca565b005b6103d3600480360360208110156103a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b6e565b005b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600043905092915050565b60006001905092915050565b600060036000838152602001908152602001600020600001549050919050565b610451610d60565b73ffffffffffffffffffffffffffffffffffffffff1661046f6105b6565b73ffffffffffffffffffffffffffffffffffffffff16146104f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060036000838152602001908152602001600020600101549050919050565b600060036000838152602001908152602001600020600401549050919050565b6000801b8314156106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f617373657274696f6e494420686173682063616e6e6f74206265207a65726f0081525060200191505060405180910390fd5b6000801b82141561071a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610db66027913960400191505060405180910390fd5b610724838361041d565b1561077f57803373ffffffffffffffffffffffffffffffffffffffff16847fce001fcd900079c312eaa96f5c1c389ffe207eb41e90197f5a011668b58ef598607b6040518082815260200191505060405180910390a46107c5565b803373ffffffffffffffffffffffffffffffffffffffff16847f37d4188105d31e43e2177257c4e9cc2c8eda5c0783943eb00abe942ac687b03a60405160405180910390a45b505050565b6000801b851415610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f617373657274696f6e494420686173682063616e6e6f74206265207a65726f0081525060200191505060405180910390fd5b6000801b8414156108bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6f744861736820686173682063616e6e6f74206265207a65726f0000000081525060200191505060405180910390fd5b6000821415610916576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610ddd6022913960400191505060405180910390fd5b6000811415610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610d696027913960400191505060405180910390fd5b60006003600087815260200190815260200160002060020154146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f417373657274696f6e20616c726561647920657869737473210000000000000081525060200191505060405180910390fd5b816003600087815260200190815260200160002060010181905550806003600087815260200190815260200160002060000181905550426003600087815260200190815260200160002060020181905550836003600087815260200190815260200160002060040181905550826003600087815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff1684867f25e2604032d2f5a218a9bed084fc10fd98b83e3b86a79ba39c214095984250168585604051808381526020018281526020019250505060405180910390a45050505050565b610b76610d60565b73ffffffffffffffffffffffffffffffffffffffff16610b946105b6565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610d906026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003390509056fe617373657274696f6e54696d65546f4c69766520686173682063616e6e6f74206265207a65726f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737365706f6368417373657274696f6e50726f6f6620686173682063616e6e6f74206265207a65726f6e756d6265724f6645706f63687320686173682063616e6e6f74206265207a65726fa2646970667358221220152e1139f6922ba82f151b38f91761c9b96c2f0c3be8314e4fb01b519122451964736f6c63430007060033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c80638f9cd32b116100715780638f9cd32b1461022b5780639e50e72c1461025f578063b934b4e4146102a1578063ce64c643146102e3578063f164c43614610325578063f2fde38b14610391576100b4565b80630828e9f3146100b957806308c4933b14610111578063193f9c7e1461015d5780636988bc03146101ab578063715018a6146101ed5780638da5cb5b146101f7575b600080fd5b6100e5600480360360208110156100cf57600080fd5b81019080803590602001909291905050506103d5565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6101476004803603604081101561012757600080fd5b810190808035906020019092919080359060200190929190505050610412565b6040518082815260200191505060405180910390f35b6101936004803603604081101561017357600080fd5b81019080803590602001909291908035906020019092919050505061041d565b60405180821515815260200191505060405180910390f35b6101d7600480360360208110156101c157600080fd5b8101908080359060200190929190505050610429565b6040518082815260200191505060405180910390f35b6101f5610449565b005b6101ff6105b6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102336105df565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61028b6004803603602081101561027557600080fd5b8101908080359060200190929190505050610605565b6040518082815260200191505060405180910390f35b6102cd600480360360208110156102b757600080fd5b8101908080359060200190929190505050610625565b6040518082815260200191505060405180910390f35b610323600480360360608110156102f957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610645565b005b61038f600480360360a081101561033b57600080fd5b810190808035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291905050506107ca565b005b6103d3600480360360208110156103a757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610b6e565b005b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600043905092915050565b60006001905092915050565b600060036000838152602001908152602001600020600001549050919050565b610451610d60565b73ffffffffffffffffffffffffffffffffffffffff1661046f6105b6565b73ffffffffffffffffffffffffffffffffffffffff16146104f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060036000838152602001908152602001600020600101549050919050565b600060036000838152602001908152602001600020600401549050919050565b6000801b8314156106be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f617373657274696f6e494420686173682063616e6e6f74206265207a65726f0081525060200191505060405180910390fd5b6000801b82141561071a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610db66027913960400191505060405180910390fd5b610724838361041d565b1561077f57803373ffffffffffffffffffffffffffffffffffffffff16847fce001fcd900079c312eaa96f5c1c389ffe207eb41e90197f5a011668b58ef598607b6040518082815260200191505060405180910390a46107c5565b803373ffffffffffffffffffffffffffffffffffffffff16847f37d4188105d31e43e2177257c4e9cc2c8eda5c0783943eb00abe942ac687b03a60405160405180910390a45b505050565b6000801b851415610843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f617373657274696f6e494420686173682063616e6e6f74206265207a65726f0081525060200191505060405180910390fd5b6000801b8414156108bc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f726f6f744861736820686173682063616e6e6f74206265207a65726f0000000081525060200191505060405180910390fd5b6000821415610916576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180610ddd6022913960400191505060405180910390fd5b6000811415610970576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180610d696027913960400191505060405180910390fd5b60006003600087815260200190815260200160002060020154146109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f417373657274696f6e20616c726561647920657869737473210000000000000081525060200191505060405180910390fd5b816003600087815260200190815260200160002060010181905550806003600087815260200190815260200160002060000181905550426003600087815260200190815260200160002060020181905550836003600087815260200190815260200160002060040181905550826003600087815260200190815260200160002060030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550826004600087815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff1684867f25e2604032d2f5a218a9bed084fc10fd98b83e3b86a79ba39c214095984250168585604051808381526020018281526020019250505060405180910390a45050505050565b610b76610d60565b73ffffffffffffffffffffffffffffffffffffffff16610b946105b6565b73ffffffffffffffffffffffffffffffffffffffff1614610c1d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180610d906026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003390509056fe617373657274696f6e54696d65546f4c69766520686173682063616e6e6f74206265207a65726f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737365706f6368417373657274696f6e50726f6f6620686173682063616e6e6f74206265207a65726f6e756d6265724f6645706f63687320686173682063616e6e6f74206265207a65726fa2646970667358221220152e1139f6922ba82f151b38f91761c9b96c2f0c3be8314e4fb01b519122451964736f6c63430007060033",
- "immutableReferences": {},
- "generatedSources": [],
- "deployedGeneratedSources": [],
- "sourceMap": "286:3623:7:-:0;;;1355:199;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;884:17:0;904:12;:10;;;:12;;:::i;:::-;884:32;;935:9;926:6;;:18;;;;;;;;;;;;;;;;;;992:9;959:43;;988:1;959:43;;;;;;;;;;;;850:159;1433:1:7;1410:25;;:13;:25;;;;1402:34;;;;;;1455:13;1440:5;;:29;;;;;;;;;;;;;;;;;;1494:13;1473:18;;:34;;;;;;;;;;;;;;;;;;1535:13;1519:30;;;;;;;;;;;;1355:199;286:3623;;598:104:6;651:15;685:10;678:17;;598:104;:::o;286:3623:7:-;;;;;;;",
- "deployedSourceMap": "286:3623:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3189:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3783:123;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3050:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3463:156;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1717:145:0;;;:::i;:::-;;1085:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;368:33:7;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3621:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3320:141;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2576:469;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1567:994;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3189:129:7;3259:15;3286;:28;3302:11;3286:28;;;;;;;;;;;;;;;;;;;;;3279:35;;3189:129;;;:::o;3783:123::-;3866:12;3890;3883:19;;3783:123;;;;:::o;3050:134::-;3148:15;3175:4;3168:11;;3050:134;;;;:::o;3463:156::-;3537:18;3567:15;:28;3583:11;3567:28;;;;;;;;;;;:48;;;3560:55;;3463:156;;;:::o;1717:145:0:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1786:40;;1807:6;::::0;::::1;;;;;;;;1786:40;;;;;;;;;;;;1853:1;1836:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1717:145::o:0;1085:85::-;1131:7;1157:6;;;;;;;;;;;1150:13;;1085:85;:::o;368:33:7:-;;;;;;;;;;;;;:::o;3621:159::-;3699:22;3733:15;:28;3749:11;3733:28;;;;;;;;;;;:43;;;3726:50;;3621:159;;;:::o;3320:141::-;3392:16;3420:15;:28;3436:11;3420:28;;;;;;;;;;;:37;;;3413:44;;3320:141;;;:::o;2576:469::-;2711:1;2696:16;;:11;:16;;2688:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2783:1;2760:24;;:19;:24;;2752:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2837:54;2858:11;2871:19;2837:20;:54::i;:::-;2833:208;;;2941:11;2930:10;2902:56;;2918:11;2902:56;2954:3;2902:56;;;;;;;;;;;;;;;;;;2833:208;;;3023:11;3012:10;2981:54;;3000:11;2981:54;;;;;;;;;;2833:208;2576:469;;;:::o;1567:994::-;1740:1;1725:16;;:11;:16;;1717:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1801:1;1789:13;;:8;:13;;1781:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1865:1;1847:14;:19;;1839:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1940:1;1917:19;:24;;1909:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2040:1;1997:15;:28;2013:11;1997:28;;;;;;;;;;;:41;;;:44;1989:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2175:14;2129:15;:28;2145:11;2129:28;;;;;;;;;;;:43;;:60;;;;2244:19;2193:15;:28;2209:11;2193:28;;;;;;;;;;;:48;;:70;;;;2311:15;2267;:28;2283:11;2267:28;;;;;;;;;;;:41;;:59;;;;2370:8;2330:15;:28;2346:11;2330:28;;;;;;;;;;;:37;;:48;;;;2420:6;2382:15;:28;2398:11;2382:28;;;;;;;;;;;:35;;;:44;;;;;;;;;;;;;;;;;;2461:6;2430:15;:28;2446:11;2430:28;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;2515:6;2477:80;;2506:8;2494:11;2477:80;2522:14;2537:19;2477:80;;;;;;;;;;;;;;;;;;;;;;;;1567:994;;;;;:::o;2011:240:0:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:1:::1;2099:22;;:8;:22;;;;2091:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:8;2179:38;;2200:6;::::0;::::1;;;;;;;;2179:38;;;;;;;;;;;;2236:8;2227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2011:240:::0;:::o;598:104:6:-;651:15;685:10;678:17;;598:104;:::o",
- "source": "pragma solidity >=0.6.0 <0.8.0;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/access/Ownable.sol\";\n\n\n// mock contract for now, we will add the hub and the rest later\ncontract DKGcontract is Ownable {\n\n\n\tusing SafeMath for uint256;\n\tIERC20 token;\n\n\taddress public TRAC_TOKEN_ADDRESS;\n\n\tstruct AssertionRecord{\n\t\t// bytes32 assertionID; // hash (multihash) of the assertion\n\t\tuint256 assertionTimeToLive;\n\t\tuint256 numberOfEpochs;\n\t\tuint256 creationTime;\n\t\taddress issuer;\n\t\tbytes32 rootHash;\n\t\tbytes32 data; // for extensibility\n\t\t// TODO: include Token management\n\t}\n\n\tmapping(bytes32 => AssertionRecord) internal assertionRecord; // assertionRecord[assertionID] , formerly offer[offerID]\n\tmapping(bytes32 => address) internal assertionIssuer; // mapping assertionID -> assertionIssuer\n\n\n\t// events\n\tevent TokenAddressSet(address indexed token);\n\tevent AssertionCreated(bytes32 indexed assertionID, bytes32 indexed rootHash, address indexed assertionIssuer, uint256 numberOfEpochs, uint256 assertionTimeToLive);\n\tevent TokensCollected(bytes32 indexed assertionID, address indexed prover, uint256 indexed epoch, uint256 amount);\n\tevent VerificationFailed(bytes32 indexed assertionID, address indexed prover, uint256 indexed epoch);\n\n\n\n\tconstructor(address token_address) public {\n\t\trequire(token_address!=address(0));\n\t\ttoken = IERC20(token_address);\n\t\tTRAC_TOKEN_ADDRESS = token_address;\n\t\t\n\t\temit TokenAddressSet(token_address);\n\n\t}\n\n\t/* DC */\n\tfunction createAssertionRecord(bytes32 assertionID, bytes32 rootHash, address issuer, uint256 numberOfEpochs, uint256 assertionTimeToLive) public {\n\t\trequire(assertionID != 0, \"assertionID hash cannot be zero\");\n\t\trequire(rootHash != 0, \"rootHash hash cannot be zero\");\n\t\trequire(numberOfEpochs != 0, \"numberOfEpochs hash cannot be zero\");\n\t\trequire(assertionTimeToLive != 0, \"assertionTimeToLive hash cannot be zero\");\n\t\trequire(assertionRecord[assertionID].creationTime==0, \"Assertion already exists!\");\n\n\t\t// transfer token to contract here (next version)\n\n\t\tassertionRecord[assertionID].numberOfEpochs = numberOfEpochs;\n\t\tassertionRecord[assertionID].assertionTimeToLive = assertionTimeToLive;\n\t\tassertionRecord[assertionID].creationTime = block.timestamp;\n\t\tassertionRecord[assertionID].rootHash = rootHash;\n\t\tassertionRecord[assertionID].issuer = issuer;\n\t\tassertionIssuer[assertionID] = issuer;\n\n\t\temit AssertionCreated(assertionID,rootHash,issuer,numberOfEpochs,assertionTimeToLive);\n\t}\n\n\n\t/* DH */\n\n\tfunction submitHoldingProof(bytes32 assertionID, bytes32 epochAssertionProof, uint256 epochNumber) \n\tpublic {\n\t\trequire(assertionID != 0, \"assertionID hash cannot be zero\");\n\t\trequire(epochAssertionProof != 0, \"epochAssertionProof hash cannot be zero\");\n\n\t\tif (verifyAssertionProof(assertionID, epochAssertionProof)){\n\t\t\temit TokensCollected(assertionID,msg.sender,epochNumber, 123);\n\t\t\t} else {\n\t\t\t\temit VerificationFailed(assertionID,msg.sender,epochNumber);\n\t\t\t}\n\n\t}\n\n\n\n\tfunction verifyAssertionProof(bytes32 assertionID, bytes32 epochAssertionProof) \n\t\tpublic returns(bool proofValid){\n\t\treturn true;\n\n\t}\n\n\n\n\tfunction getAssertionIssuer(bytes32 assertionID)\n\tpublic view returns(address creator){\n\t\treturn assertionIssuer[assertionID];\n\t}\n\tfunction getAssertionRootHash(bytes32 assertionID)\n\tpublic view returns(bytes32 rootHash){\n\t\treturn assertionRecord[assertionID].rootHash;\n\t}\n\tfunction getAssertionTimeToLive(bytes32 assertionID)\n\tpublic view returns(uint256 timeToLive){\n\t\treturn assertionRecord[assertionID].assertionTimeToLive;\n\t}\n\tfunction getAssertionNumberOfEpochs(bytes32 assertionID)\n\tpublic view returns(uint256 numberOfEpochs){\n\t\treturn assertionRecord[assertionID].numberOfEpochs;\n\t}\n\n\tfunction getAssertionTask(bytes32 assertionID, uint256 epoch)\n\tpublic view returns(uint256 task){\n\t\treturn block.number;\n\t}\n\n}",
- "sourcePath": "/Users/miloskotlar/dkg-onchain-module-v6/contracts/DKGcontract.sol",
- "ast": {
- "absolutePath": "project:/contracts/DKGcontract.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "DKGcontract": [
- 1138
- ],
- "IERC20": [
- 676
- ],
- "Ownable": [
- 109
- ],
- "SafeMath": [
- 476
- ]
- },
- "id": 1139,
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 817,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "0:31:7"
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "id": 818,
- "nodeType": "ImportDirective",
- "scope": 1139,
- "sourceUnit": 677,
- "src": "33:64:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "id": 819,
- "nodeType": "ImportDirective",
- "scope": 1139,
- "sourceUnit": 477,
- "src": "98:59:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "id": 820,
- "nodeType": "ImportDirective",
- "scope": 1139,
- "sourceUnit": 110,
- "src": "158:60:7",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "baseName": {
- "id": 821,
- "name": "Ownable",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 109,
- "src": "310:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Ownable_$109",
- "typeString": "contract Ownable"
- }
- },
- "id": 822,
- "nodeType": "InheritanceSpecifier",
- "src": "310:7:7"
- }
- ],
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "id": 1138,
- "linearizedBaseContracts": [
- 1138,
- 109,
- 815
- ],
- "name": "DKGcontract",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "id": 825,
- "libraryName": {
- "id": 823,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 476,
- "src": "329:8:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$476",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "323:27:7",
- "typeName": {
- "id": 824,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "342:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "constant": false,
- "id": 827,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "scope": 1138,
- "src": "352:12:7",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "id": 826,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 676,
- "src": "352:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "functionSelector": "8f9cd32b",
- "id": 829,
- "mutability": "mutable",
- "name": "TRAC_TOKEN_ADDRESS",
- "nodeType": "VariableDeclaration",
- "scope": 1138,
- "src": "368:33:7",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 828,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "368:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "public"
- },
- {
- "canonicalName": "DKGcontract.AssertionRecord",
- "id": 842,
- "members": [
- {
- "constant": false,
- "id": 831,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "494:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 830,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "494:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 833,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "525:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 832,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "525:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 835,
- "mutability": "mutable",
- "name": "creationTime",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "551:20:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 834,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "551:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 837,
- "mutability": "mutable",
- "name": "issuer",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "575:14:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 836,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "575:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 839,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "593:16:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 838,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "593:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 841,
- "mutability": "mutable",
- "name": "data",
- "nodeType": "VariableDeclaration",
- "scope": 842,
- "src": "613:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 840,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "613:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "name": "AssertionRecord",
- "nodeType": "StructDefinition",
- "scope": 1138,
- "src": "405:281:7",
- "visibility": "public"
- },
- {
- "constant": false,
- "id": 846,
- "mutability": "mutable",
- "name": "assertionRecord",
- "nodeType": "VariableDeclaration",
- "scope": 1138,
- "src": "689:60:7",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord)"
- },
- "typeName": {
- "id": 845,
- "keyType": {
- "id": 843,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "697:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "689:35:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord)"
- },
- "valueType": {
- "id": 844,
- "name": "AssertionRecord",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 842,
- "src": "708:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage_ptr",
- "typeString": "struct DKGcontract.AssertionRecord"
- }
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 850,
- "mutability": "mutable",
- "name": "assertionIssuer",
- "nodeType": "VariableDeclaration",
- "scope": 1138,
- "src": "810:52:7",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "typeName": {
- "id": 849,
- "keyType": {
- "id": 847,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "818:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "810:27:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- },
- "valueType": {
- "id": 848,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "829:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- },
- "visibility": "internal"
- },
- {
- "anonymous": false,
- "id": 854,
- "name": "TokenAddressSet",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 853,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 852,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "scope": 854,
- "src": "942:21:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 851,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "942:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "941:23:7"
- },
- "src": "920:45:7"
- },
- {
- "anonymous": false,
- "id": 866,
- "name": "AssertionCreated",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 865,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 856,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 866,
- "src": "990:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 855,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "990:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 858,
- "indexed": true,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 866,
- "src": "1019:24:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 857,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1019:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 860,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionIssuer",
- "nodeType": "VariableDeclaration",
- "scope": 866,
- "src": "1045:31:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 859,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1045:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 862,
- "indexed": false,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "nodeType": "VariableDeclaration",
- "scope": 866,
- "src": "1078:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 861,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1078:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 864,
- "indexed": false,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "nodeType": "VariableDeclaration",
- "scope": 866,
- "src": "1102:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 863,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1102:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "989:141:7"
- },
- "src": "967:164:7"
- },
- {
- "anonymous": false,
- "id": 876,
- "name": "TokensCollected",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 875,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 868,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 876,
- "src": "1155:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 867,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1155:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 870,
- "indexed": true,
- "mutability": "mutable",
- "name": "prover",
- "nodeType": "VariableDeclaration",
- "scope": 876,
- "src": "1184:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 869,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1184:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 872,
- "indexed": true,
- "mutability": "mutable",
- "name": "epoch",
- "nodeType": "VariableDeclaration",
- "scope": 876,
- "src": "1208:21:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 871,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1208:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 874,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "scope": 876,
- "src": "1231:14:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 873,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1231:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1154:92:7"
- },
- "src": "1133:114:7"
- },
- {
- "anonymous": false,
- "id": 884,
- "name": "VerificationFailed",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 883,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 878,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 884,
- "src": "1274:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 877,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1274:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 880,
- "indexed": true,
- "mutability": "mutable",
- "name": "prover",
- "nodeType": "VariableDeclaration",
- "scope": 884,
- "src": "1303:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 879,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1303:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 882,
- "indexed": true,
- "mutability": "mutable",
- "name": "epoch",
- "nodeType": "VariableDeclaration",
- "scope": 884,
- "src": "1327:21:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 881,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1327:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1273:76:7"
- },
- "src": "1249:101:7"
- },
- {
- "body": {
- "id": 912,
- "nodeType": "Block",
- "src": "1398:156:7",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 895,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 890,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 886,
- "src": "1410:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "arguments": [
- {
- "hexValue": "30",
- "id": 893,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1433:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 892,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1425:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 891,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1425:7:7",
- "typeDescriptions": {}
- }
- },
- "id": 894,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1425:10:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "1410:25:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "id": 889,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1402:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
- "typeString": "function (bool) pure"
- }
- },
- "id": 896,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1402:34:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 897,
- "nodeType": "ExpressionStatement",
- "src": "1402:34:7"
- },
- {
- "expression": {
- "id": 902,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 898,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 827,
- "src": "1440:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "arguments": [
- {
- "id": 900,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 886,
- "src": "1455:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 899,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 676,
- "src": "1448:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$676_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 901,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1448:21:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "src": "1440:29:7",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "id": 903,
- "nodeType": "ExpressionStatement",
- "src": "1440:29:7"
- },
- {
- "expression": {
- "id": 906,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 904,
- "name": "TRAC_TOKEN_ADDRESS",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 829,
- "src": "1473:18:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 905,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 886,
- "src": "1494:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1473:34:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 907,
- "nodeType": "ExpressionStatement",
- "src": "1473:34:7"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 909,
- "name": "token_address",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 886,
- "src": "1535:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 908,
- "name": "TokenAddressSet",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 854,
- "src": "1519:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
- "typeString": "function (address)"
- }
- },
- "id": 910,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1519:30:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 911,
- "nodeType": "EmitStatement",
- "src": "1514:35:7"
- }
- ]
- },
- "id": 913,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 887,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 886,
- "mutability": "mutable",
- "name": "token_address",
- "nodeType": "VariableDeclaration",
- "scope": 913,
- "src": "1367:21:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 885,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1367:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1366:23:7"
- },
- "returnParameters": {
- "id": 888,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1398:0:7"
- },
- "scope": 1138,
- "src": "1355:199:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1014,
- "nodeType": "Block",
- "src": "1713:848:7",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 929,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 927,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "1725:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 928,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1740:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1725:16:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "617373657274696f6e494420686173682063616e6e6f74206265207a65726f",
- "id": 930,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1743:33:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- },
- "value": "assertionID hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- }
- ],
- "id": 926,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1717:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 931,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1717:60:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 932,
- "nodeType": "ExpressionStatement",
- "src": "1717:60:7"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 936,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 934,
- "name": "rootHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 917,
- "src": "1789:8:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 935,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1801:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1789:13:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "726f6f744861736820686173682063616e6e6f74206265207a65726f",
- "id": 937,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1804:30:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_224e5e3aafad117a551900ad41b6b8fd4124c64978d6cb6f2d999d30b5a7caf6",
- "typeString": "literal_string \"rootHash hash cannot be zero\""
- },
- "value": "rootHash hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_224e5e3aafad117a551900ad41b6b8fd4124c64978d6cb6f2d999d30b5a7caf6",
- "typeString": "literal_string \"rootHash hash cannot be zero\""
- }
- ],
- "id": 933,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1781:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 938,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1781:54:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 939,
- "nodeType": "ExpressionStatement",
- "src": "1781:54:7"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 943,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 941,
- "name": "numberOfEpochs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 921,
- "src": "1847:14:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 942,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1865:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1847:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "6e756d6265724f6645706f63687320686173682063616e6e6f74206265207a65726f",
- "id": 944,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1868:36:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_fa4af5b2a5d3b443608ae031fd9009eab2ce4cb844577b417eed67d3d60328f1",
- "typeString": "literal_string \"numberOfEpochs hash cannot be zero\""
- },
- "value": "numberOfEpochs hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fa4af5b2a5d3b443608ae031fd9009eab2ce4cb844577b417eed67d3d60328f1",
- "typeString": "literal_string \"numberOfEpochs hash cannot be zero\""
- }
- ],
- "id": 940,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1839:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 945,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1839:66:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 946,
- "nodeType": "ExpressionStatement",
- "src": "1839:66:7"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 950,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 948,
- "name": "assertionTimeToLive",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 923,
- "src": "1917:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 949,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1940:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1917:24:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "617373657274696f6e54696d65546f4c69766520686173682063616e6e6f74206265207a65726f",
- "id": 951,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1943:41:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_069e2edd21d0b2ae0e0fdeacec1cd50fed913131221cbb295c527db83a0001af",
- "typeString": "literal_string \"assertionTimeToLive hash cannot be zero\""
- },
- "value": "assertionTimeToLive hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_069e2edd21d0b2ae0e0fdeacec1cd50fed913131221cbb295c527db83a0001af",
- "typeString": "literal_string \"assertionTimeToLive hash cannot be zero\""
- }
- ],
- "id": 947,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1909:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 952,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1909:76:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 953,
- "nodeType": "ExpressionStatement",
- "src": "1909:76:7"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 960,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "expression": {
- "baseExpression": {
- "id": 955,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "1997:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 957,
- "indexExpression": {
- "id": 956,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2013:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "1997:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 958,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "creationTime",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 835,
- "src": "1997:41:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "hexValue": "30",
- "id": 959,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2040:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1997:44:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "417373657274696f6e20616c72656164792065786973747321",
- "id": 961,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2043:27:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_533fbfe4d9ec6c5b4aac3ac2c85a5993318086c6dfacddd0ec06ea4b669082d1",
- "typeString": "literal_string \"Assertion already exists!\""
- },
- "value": "Assertion already exists!"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_533fbfe4d9ec6c5b4aac3ac2c85a5993318086c6dfacddd0ec06ea4b669082d1",
- "typeString": "literal_string \"Assertion already exists!\""
- }
- ],
- "id": 954,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1989:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 962,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1989:82:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 963,
- "nodeType": "ExpressionStatement",
- "src": "1989:82:7"
- },
- {
- "expression": {
- "id": 969,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 964,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "2129:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 966,
- "indexExpression": {
- "id": 965,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2145:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2129:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 967,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "numberOfEpochs",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 833,
- "src": "2129:43:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 968,
- "name": "numberOfEpochs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 921,
- "src": "2175:14:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2129:60:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 970,
- "nodeType": "ExpressionStatement",
- "src": "2129:60:7"
- },
- {
- "expression": {
- "id": 976,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 971,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "2193:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 973,
- "indexExpression": {
- "id": 972,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2209:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2193:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 974,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "assertionTimeToLive",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 831,
- "src": "2193:48:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 975,
- "name": "assertionTimeToLive",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 923,
- "src": "2244:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2193:70:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 977,
- "nodeType": "ExpressionStatement",
- "src": "2193:70:7"
- },
- {
- "expression": {
- "id": 984,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 978,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "2267:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 980,
- "indexExpression": {
- "id": 979,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2283:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2267:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 981,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "creationTime",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 835,
- "src": "2267:41:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "expression": {
- "id": 982,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967292,
- "src": "2311:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 983,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "src": "2311:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2267:59:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 985,
- "nodeType": "ExpressionStatement",
- "src": "2267:59:7"
- },
- {
- "expression": {
- "id": 991,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 986,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "2330:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 988,
- "indexExpression": {
- "id": 987,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2346:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2330:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 989,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "rootHash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 839,
- "src": "2330:37:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 990,
- "name": "rootHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 917,
- "src": "2370:8:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "2330:48:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 992,
- "nodeType": "ExpressionStatement",
- "src": "2330:48:7"
- },
- {
- "expression": {
- "id": 998,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 993,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "2382:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 995,
- "indexExpression": {
- "id": 994,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2398:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2382:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 996,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "issuer",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 837,
- "src": "2382:35:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 997,
- "name": "issuer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 919,
- "src": "2420:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "2382:44:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 999,
- "nodeType": "ExpressionStatement",
- "src": "2382:44:7"
- },
- {
- "expression": {
- "id": 1004,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "baseExpression": {
- "id": 1000,
- "name": "assertionIssuer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "2430:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 1002,
- "indexExpression": {
- "id": 1001,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2446:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2430:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1003,
- "name": "issuer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 919,
- "src": "2461:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "2430:37:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1005,
- "nodeType": "ExpressionStatement",
- "src": "2430:37:7"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1007,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 915,
- "src": "2494:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1008,
- "name": "rootHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 917,
- "src": "2506:8:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1009,
- "name": "issuer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 919,
- "src": "2515:6:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "id": 1010,
- "name": "numberOfEpochs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 921,
- "src": "2522:14:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "id": 1011,
- "name": "assertionTimeToLive",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 923,
- "src": "2537:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1006,
- "name": "AssertionCreated",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 866,
- "src": "2477:16:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
- "typeString": "function (bytes32,bytes32,address,uint256,uint256)"
- }
- },
- "id": 1012,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2477:80:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1013,
- "nodeType": "EmitStatement",
- "src": "2472:85:7"
- }
- ]
- },
- "functionSelector": "f164c436",
- "id": 1015,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "createAssertionRecord",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 924,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 915,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1015,
- "src": "1598:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 914,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1598:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 917,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 1015,
- "src": "1619:16:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 916,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1619:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 919,
- "mutability": "mutable",
- "name": "issuer",
- "nodeType": "VariableDeclaration",
- "scope": 1015,
- "src": "1637:14:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 918,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1637:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 921,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "nodeType": "VariableDeclaration",
- "scope": 1015,
- "src": "1653:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 920,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1653:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 923,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "nodeType": "VariableDeclaration",
- "scope": 1015,
- "src": "1677:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 922,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1677:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1597:108:7"
- },
- "returnParameters": {
- "id": 925,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1713:0:7"
- },
- "scope": 1138,
- "src": "1567:994:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1060,
- "nodeType": "Block",
- "src": "2684:361:7",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1027,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1025,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1017,
- "src": "2696:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1026,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2711:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2696:16:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "617373657274696f6e494420686173682063616e6e6f74206265207a65726f",
- "id": 1028,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2714:33:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- },
- "value": "assertionID hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- }
- ],
- "id": 1024,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2688:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1029,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2688:60:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1030,
- "nodeType": "ExpressionStatement",
- "src": "2688:60:7"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1034,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1032,
- "name": "epochAssertionProof",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1019,
- "src": "2760:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1033,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2783:1:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2760:24:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "65706f6368417373657274696f6e50726f6f6620686173682063616e6e6f74206265207a65726f",
- "id": 1035,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2786:41:7",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_51a89ccd247a0e5232bbda470ea88b3fa7ebe5c9c4e686866df3ae98cc738613",
- "typeString": "literal_string \"epochAssertionProof hash cannot be zero\""
- },
- "value": "epochAssertionProof hash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_51a89ccd247a0e5232bbda470ea88b3fa7ebe5c9c4e686866df3ae98cc738613",
- "typeString": "literal_string \"epochAssertionProof hash cannot be zero\""
- }
- ],
- "id": 1031,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2752:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1036,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2752:76:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1037,
- "nodeType": "ExpressionStatement",
- "src": "2752:76:7"
- },
- {
- "condition": {
- "arguments": [
- {
- "id": 1039,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1017,
- "src": "2858:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1040,
- "name": "epochAssertionProof",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1019,
- "src": "2871:19:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "id": 1038,
- "name": "verifyAssertionProof",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1073,
- "src": "2837:20:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$_t_bool_$",
- "typeString": "function (bytes32,bytes32) returns (bool)"
- }
- },
- "id": 1041,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2837:54:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": {
- "id": 1058,
- "nodeType": "Block",
- "src": "2970:71:7",
- "statements": [
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1052,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1017,
- "src": "3000:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "expression": {
- "id": 1053,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "3012:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1054,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "3012:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "id": 1055,
- "name": "epochNumber",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1021,
- "src": "3023:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "id": 1051,
- "name": "VerificationFailed",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 884,
- "src": "2981:18:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$",
- "typeString": "function (bytes32,address,uint256)"
- }
- },
- "id": 1056,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2981:54:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1057,
- "nodeType": "EmitStatement",
- "src": "2976:59:7"
- }
- ]
- },
- "id": 1059,
- "nodeType": "IfStatement",
- "src": "2833:208:7",
- "trueBody": {
- "id": 1050,
- "nodeType": "Block",
- "src": "2892:72:7",
- "statements": [
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1043,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1017,
- "src": "2918:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "expression": {
- "id": 1044,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "2930:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1045,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "2930:10:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "id": 1046,
- "name": "epochNumber",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1021,
- "src": "2941:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "hexValue": "313233",
- "id": 1047,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2954:3:7",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_123_by_1",
- "typeString": "int_const 123"
- },
- "value": "123"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_rational_123_by_1",
- "typeString": "int_const 123"
- }
- ],
- "id": 1042,
- "name": "TokensCollected",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 876,
- "src": "2902:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
- "typeString": "function (bytes32,address,uint256,uint256)"
- }
- },
- "id": 1048,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2902:56:7",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1049,
- "nodeType": "EmitStatement",
- "src": "2897:61:7"
- }
- ]
- }
- }
- ]
- },
- "functionSelector": "ce64c643",
- "id": 1061,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "submitHoldingProof",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1022,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1017,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1061,
- "src": "2604:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1016,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2604:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1019,
- "mutability": "mutable",
- "name": "epochAssertionProof",
- "nodeType": "VariableDeclaration",
- "scope": 1061,
- "src": "2625:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1018,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2625:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1021,
- "mutability": "mutable",
- "name": "epochNumber",
- "nodeType": "VariableDeclaration",
- "scope": 1061,
- "src": "2654:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1020,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2654:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "2603:71:7"
- },
- "returnParameters": {
- "id": 1023,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2684:0:7"
- },
- "scope": 1138,
- "src": "2576:469:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1072,
- "nodeType": "Block",
- "src": "3164:20:7",
- "statements": [
- {
- "expression": {
- "hexValue": "74727565",
- "id": 1070,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3175:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "functionReturnParameters": 1069,
- "id": 1071,
- "nodeType": "Return",
- "src": "3168:11:7"
- }
- ]
- },
- "functionSelector": "193f9c7e",
- "id": 1073,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "verifyAssertionProof",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1066,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1063,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1073,
- "src": "3080:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1062,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3080:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1065,
- "mutability": "mutable",
- "name": "epochAssertionProof",
- "nodeType": "VariableDeclaration",
- "scope": 1073,
- "src": "3101:27:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1064,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3101:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3079:50:7"
- },
- "returnParameters": {
- "id": 1069,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1068,
- "mutability": "mutable",
- "name": "proofValid",
- "nodeType": "VariableDeclaration",
- "scope": 1073,
- "src": "3148:15:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1067,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "3148:4:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3147:17:7"
- },
- "scope": 1138,
- "src": "3050:134:7",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1084,
- "nodeType": "Block",
- "src": "3275:43:7",
- "statements": [
- {
- "expression": {
- "baseExpression": {
- "id": 1080,
- "name": "assertionIssuer",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 850,
- "src": "3286:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_address_$",
- "typeString": "mapping(bytes32 => address)"
- }
- },
- "id": 1082,
- "indexExpression": {
- "id": 1081,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1075,
- "src": "3302:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3286:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "functionReturnParameters": 1079,
- "id": 1083,
- "nodeType": "Return",
- "src": "3279:35:7"
- }
- ]
- },
- "functionSelector": "0828e9f3",
- "id": 1085,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionIssuer",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1076,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1075,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1085,
- "src": "3217:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1074,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3217:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3216:21:7"
- },
- "returnParameters": {
- "id": 1079,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1078,
- "mutability": "mutable",
- "name": "creator",
- "nodeType": "VariableDeclaration",
- "scope": 1085,
- "src": "3259:15:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1077,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3259:7:7",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3258:17:7"
- },
- "scope": 1138,
- "src": "3189:129:7",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1097,
- "nodeType": "Block",
- "src": "3409:52:7",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1092,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "3420:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 1094,
- "indexExpression": {
- "id": 1093,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1087,
- "src": "3436:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3420:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 1095,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "rootHash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 839,
- "src": "3420:37:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 1091,
- "id": 1096,
- "nodeType": "Return",
- "src": "3413:44:7"
- }
- ]
- },
- "functionSelector": "b934b4e4",
- "id": 1098,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionRootHash",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1088,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1087,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1098,
- "src": "3350:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1086,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3350:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3349:21:7"
- },
- "returnParameters": {
- "id": 1091,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1090,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 1098,
- "src": "3392:16:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1089,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3392:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3391:18:7"
- },
- "scope": 1138,
- "src": "3320:141:7",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1110,
- "nodeType": "Block",
- "src": "3556:63:7",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1105,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "3567:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 1107,
- "indexExpression": {
- "id": 1106,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1100,
- "src": "3583:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3567:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 1108,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "assertionTimeToLive",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 831,
- "src": "3567:48:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1104,
- "id": 1109,
- "nodeType": "Return",
- "src": "3560:55:7"
- }
- ]
- },
- "functionSelector": "6988bc03",
- "id": 1111,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionTimeToLive",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1101,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1100,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1111,
- "src": "3495:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1099,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3495:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3494:21:7"
- },
- "returnParameters": {
- "id": 1104,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1103,
- "mutability": "mutable",
- "name": "timeToLive",
- "nodeType": "VariableDeclaration",
- "scope": 1111,
- "src": "3537:18:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1102,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3537:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3536:20:7"
- },
- "scope": 1138,
- "src": "3463:156:7",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1123,
- "nodeType": "Block",
- "src": "3722:58:7",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1118,
- "name": "assertionRecord",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 846,
- "src": "3733:15:7",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssertionRecord_$842_storage_$",
- "typeString": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)"
- }
- },
- "id": 1120,
- "indexExpression": {
- "id": 1119,
- "name": "assertionID",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1113,
- "src": "3749:11:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3733:28:7",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssertionRecord_$842_storage",
- "typeString": "struct DKGcontract.AssertionRecord storage ref"
- }
- },
- "id": 1121,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "numberOfEpochs",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 833,
- "src": "3733:43:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1117,
- "id": 1122,
- "nodeType": "Return",
- "src": "3726:50:7"
- }
- ]
- },
- "functionSelector": "9e50e72c",
- "id": 1124,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionNumberOfEpochs",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1114,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1113,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1124,
- "src": "3657:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1112,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3657:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3656:21:7"
- },
- "returnParameters": {
- "id": 1117,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1116,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "nodeType": "VariableDeclaration",
- "scope": 1124,
- "src": "3699:22:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1115,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3699:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3698:24:7"
- },
- "scope": 1138,
- "src": "3621:159:7",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1136,
- "nodeType": "Block",
- "src": "3879:27:7",
- "statements": [
- {
- "expression": {
- "expression": {
- "id": 1133,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967292,
- "src": "3890:5:7",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 1134,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "number",
- "nodeType": "MemberAccess",
- "src": "3890:12:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1132,
- "id": 1135,
- "nodeType": "Return",
- "src": "3883:19:7"
- }
- ]
- },
- "functionSelector": "08c4933b",
- "id": 1137,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionTask",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1129,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1126,
- "mutability": "mutable",
- "name": "assertionID",
- "nodeType": "VariableDeclaration",
- "scope": 1137,
- "src": "3809:19:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1125,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3809:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1128,
- "mutability": "mutable",
- "name": "epoch",
- "nodeType": "VariableDeclaration",
- "scope": 1137,
- "src": "3830:13:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1127,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3830:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3808:36:7"
- },
- "returnParameters": {
- "id": 1132,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1131,
- "mutability": "mutable",
- "name": "task",
- "nodeType": "VariableDeclaration",
- "scope": 1137,
- "src": "3866:12:7",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1130,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3866:7:7",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3865:14:7"
- },
- "scope": 1138,
- "src": "3783:123:7",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- }
- ],
- "scope": 1139,
- "src": "286:3623:7"
- }
- ],
- "src": "0:3909:7"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "project:/contracts/DKGcontract.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "DKGcontract": [
- 1138
- ],
- "IERC20": [
- 676
- ],
- "Ownable": [
- 109
- ],
- "SafeMath": [
- 476
- ]
- }
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 817,
- "name": "PragmaDirective",
- "src": "0:31:7"
- },
- {
- "attributes": {
- "SourceUnit": 677,
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "scope": 1139,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 818,
- "name": "ImportDirective",
- "src": "33:64:7"
- },
- {
- "attributes": {
- "SourceUnit": 477,
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "scope": 1139,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 819,
- "name": "ImportDirective",
- "src": "98:59:7"
- },
- {
- "attributes": {
- "SourceUnit": 110,
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "scope": 1139,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 820,
- "name": "ImportDirective",
- "src": "158:60:7"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 1138,
- 109,
- 815
- ],
- "name": "DKGcontract",
- "scope": 1139
- },
- "children": [
- {
- "attributes": {},
- "children": [
- {
- "attributes": {
- "name": "Ownable",
- "referencedDeclaration": 109,
- "type": "contract Ownable"
- },
- "id": 821,
- "name": "UserDefinedTypeName",
- "src": "310:7:7"
- }
- ],
- "id": 822,
- "name": "InheritanceSpecifier",
- "src": "310:7:7"
- },
- {
- "children": [
- {
- "attributes": {
- "name": "SafeMath",
- "referencedDeclaration": 476,
- "type": "library SafeMath"
- },
- "id": 823,
- "name": "UserDefinedTypeName",
- "src": "329:8:7"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 824,
- "name": "ElementaryTypeName",
- "src": "342:7:7"
- }
- ],
- "id": 825,
- "name": "UsingForDirective",
- "src": "323:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "scope": 1138,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "contract IERC20",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "IERC20",
- "referencedDeclaration": 676,
- "type": "contract IERC20"
- },
- "id": 826,
- "name": "UserDefinedTypeName",
- "src": "352:6:7"
- }
- ],
- "id": 827,
- "name": "VariableDeclaration",
- "src": "352:12:7"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "8f9cd32b",
- "mutability": "mutable",
- "name": "TRAC_TOKEN_ADDRESS",
- "scope": 1138,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 828,
- "name": "ElementaryTypeName",
- "src": "368:7:7"
- }
- ],
- "id": 829,
- "name": "VariableDeclaration",
- "src": "368:33:7"
- },
- {
- "attributes": {
- "canonicalName": "DKGcontract.AssertionRecord",
- "name": "AssertionRecord",
- "scope": 1138,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 830,
- "name": "ElementaryTypeName",
- "src": "494:7:7"
- }
- ],
- "id": 831,
- "name": "VariableDeclaration",
- "src": "494:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 832,
- "name": "ElementaryTypeName",
- "src": "525:7:7"
- }
- ],
- "id": 833,
- "name": "VariableDeclaration",
- "src": "525:22:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "creationTime",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 834,
- "name": "ElementaryTypeName",
- "src": "551:7:7"
- }
- ],
- "id": 835,
- "name": "VariableDeclaration",
- "src": "551:20:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "issuer",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 836,
- "name": "ElementaryTypeName",
- "src": "575:7:7"
- }
- ],
- "id": 837,
- "name": "VariableDeclaration",
- "src": "575:14:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 838,
- "name": "ElementaryTypeName",
- "src": "593:7:7"
- }
- ],
- "id": 839,
- "name": "VariableDeclaration",
- "src": "593:16:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "data",
- "scope": 842,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 840,
- "name": "ElementaryTypeName",
- "src": "613:7:7"
- }
- ],
- "id": 841,
- "name": "VariableDeclaration",
- "src": "613:12:7"
- }
- ],
- "id": 842,
- "name": "StructDefinition",
- "src": "405:281:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionRecord",
- "scope": 1138,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord)",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 843,
- "name": "ElementaryTypeName",
- "src": "697:7:7"
- },
- {
- "attributes": {
- "name": "AssertionRecord",
- "referencedDeclaration": 842,
- "type": "struct DKGcontract.AssertionRecord"
- },
- "id": 844,
- "name": "UserDefinedTypeName",
- "src": "708:15:7"
- }
- ],
- "id": 845,
- "name": "Mapping",
- "src": "689:35:7"
- }
- ],
- "id": 846,
- "name": "VariableDeclaration",
- "src": "689:60:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionIssuer",
- "scope": 1138,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => address)",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => address)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 847,
- "name": "ElementaryTypeName",
- "src": "818:7:7"
- },
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 848,
- "name": "ElementaryTypeName",
- "src": "829:7:7"
- }
- ],
- "id": 849,
- "name": "Mapping",
- "src": "810:27:7"
- }
- ],
- "id": 850,
- "name": "VariableDeclaration",
- "src": "810:52:7"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "TokenAddressSet"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "token",
- "scope": 854,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 851,
- "name": "ElementaryTypeName",
- "src": "942:7:7"
- }
- ],
- "id": 852,
- "name": "VariableDeclaration",
- "src": "942:21:7"
- }
- ],
- "id": 853,
- "name": "ParameterList",
- "src": "941:23:7"
- }
- ],
- "id": 854,
- "name": "EventDefinition",
- "src": "920:45:7"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "AssertionCreated"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 866,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 855,
- "name": "ElementaryTypeName",
- "src": "990:7:7"
- }
- ],
- "id": 856,
- "name": "VariableDeclaration",
- "src": "990:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 866,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 857,
- "name": "ElementaryTypeName",
- "src": "1019:7:7"
- }
- ],
- "id": 858,
- "name": "VariableDeclaration",
- "src": "1019:24:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionIssuer",
- "scope": 866,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 859,
- "name": "ElementaryTypeName",
- "src": "1045:7:7"
- }
- ],
- "id": 860,
- "name": "VariableDeclaration",
- "src": "1045:31:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "scope": 866,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 861,
- "name": "ElementaryTypeName",
- "src": "1078:7:7"
- }
- ],
- "id": 862,
- "name": "VariableDeclaration",
- "src": "1078:22:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "scope": 866,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 863,
- "name": "ElementaryTypeName",
- "src": "1102:7:7"
- }
- ],
- "id": 864,
- "name": "VariableDeclaration",
- "src": "1102:27:7"
- }
- ],
- "id": 865,
- "name": "ParameterList",
- "src": "989:141:7"
- }
- ],
- "id": 866,
- "name": "EventDefinition",
- "src": "967:164:7"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "TokensCollected"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 876,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 867,
- "name": "ElementaryTypeName",
- "src": "1155:7:7"
- }
- ],
- "id": 868,
- "name": "VariableDeclaration",
- "src": "1155:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "prover",
- "scope": 876,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 869,
- "name": "ElementaryTypeName",
- "src": "1184:7:7"
- }
- ],
- "id": 870,
- "name": "VariableDeclaration",
- "src": "1184:22:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "epoch",
- "scope": 876,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 871,
- "name": "ElementaryTypeName",
- "src": "1208:7:7"
- }
- ],
- "id": 872,
- "name": "VariableDeclaration",
- "src": "1208:21:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "amount",
- "scope": 876,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 873,
- "name": "ElementaryTypeName",
- "src": "1231:7:7"
- }
- ],
- "id": 874,
- "name": "VariableDeclaration",
- "src": "1231:14:7"
- }
- ],
- "id": 875,
- "name": "ParameterList",
- "src": "1154:92:7"
- }
- ],
- "id": 876,
- "name": "EventDefinition",
- "src": "1133:114:7"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "VerificationFailed"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 884,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 877,
- "name": "ElementaryTypeName",
- "src": "1274:7:7"
- }
- ],
- "id": 878,
- "name": "VariableDeclaration",
- "src": "1274:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "prover",
- "scope": 884,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 879,
- "name": "ElementaryTypeName",
- "src": "1303:7:7"
- }
- ],
- "id": 880,
- "name": "VariableDeclaration",
- "src": "1303:22:7"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "epoch",
- "scope": 884,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 881,
- "name": "ElementaryTypeName",
- "src": "1327:7:7"
- }
- ],
- "id": 882,
- "name": "VariableDeclaration",
- "src": "1327:21:7"
- }
- ],
- "id": 883,
- "name": "ParameterList",
- "src": "1273:76:7"
- }
- ],
- "id": 884,
- "name": "EventDefinition",
- "src": "1249:101:7"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [
- null
- ],
- "name": "",
- "scope": 1138,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token_address",
- "scope": 913,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 885,
- "name": "ElementaryTypeName",
- "src": "1367:7:7"
- }
- ],
- "id": 886,
- "name": "VariableDeclaration",
- "src": "1367:21:7"
- }
- ],
- "id": 887,
- "name": "ParameterList",
- "src": "1366:23:7"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 888,
- "name": "ParameterList",
- "src": "1398:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool) pure",
- "value": "require"
- },
- "id": 889,
- "name": "Identifier",
- "src": "1402:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 886,
- "type": "address",
- "value": "token_address"
- },
- "id": 890,
- "name": "Identifier",
- "src": "1410:13:7"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 891,
- "name": "ElementaryTypeName",
- "src": "1425:7:7"
- }
- ],
- "id": 892,
- "name": "ElementaryTypeNameExpression",
- "src": "1425:7:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 893,
- "name": "Literal",
- "src": "1433:1:7"
- }
- ],
- "id": 894,
- "name": "FunctionCall",
- "src": "1425:10:7"
- }
- ],
- "id": 895,
- "name": "BinaryOperation",
- "src": "1410:25:7"
- }
- ],
- "id": 896,
- "name": "FunctionCall",
- "src": "1402:34:7"
- }
- ],
- "id": 897,
- "name": "ExpressionStatement",
- "src": "1402:34:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "contract IERC20"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 827,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 898,
- "name": "Identifier",
- "src": "1440:5:7"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 676,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 899,
- "name": "Identifier",
- "src": "1448:6:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 886,
- "type": "address",
- "value": "token_address"
- },
- "id": 900,
- "name": "Identifier",
- "src": "1455:13:7"
- }
- ],
- "id": 901,
- "name": "FunctionCall",
- "src": "1448:21:7"
- }
- ],
- "id": 902,
- "name": "Assignment",
- "src": "1440:29:7"
- }
- ],
- "id": 903,
- "name": "ExpressionStatement",
- "src": "1440:29:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 829,
- "type": "address",
- "value": "TRAC_TOKEN_ADDRESS"
- },
- "id": 904,
- "name": "Identifier",
- "src": "1473:18:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 886,
- "type": "address",
- "value": "token_address"
- },
- "id": 905,
- "name": "Identifier",
- "src": "1494:13:7"
- }
- ],
- "id": 906,
- "name": "Assignment",
- "src": "1473:34:7"
- }
- ],
- "id": 907,
- "name": "ExpressionStatement",
- "src": "1473:34:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 854,
- "type": "function (address)",
- "value": "TokenAddressSet"
- },
- "id": 908,
- "name": "Identifier",
- "src": "1519:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 886,
- "type": "address",
- "value": "token_address"
- },
- "id": 909,
- "name": "Identifier",
- "src": "1535:13:7"
- }
- ],
- "id": 910,
- "name": "FunctionCall",
- "src": "1519:30:7"
- }
- ],
- "id": 911,
- "name": "EmitStatement",
- "src": "1514:35:7"
- }
- ],
- "id": 912,
- "name": "Block",
- "src": "1398:156:7"
- }
- ],
- "id": 913,
- "name": "FunctionDefinition",
- "src": "1355:199:7"
- },
- {
- "attributes": {
- "functionSelector": "f164c436",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "createAssertionRecord",
- "scope": 1138,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1015,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 914,
- "name": "ElementaryTypeName",
- "src": "1598:7:7"
- }
- ],
- "id": 915,
- "name": "VariableDeclaration",
- "src": "1598:19:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 1015,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 916,
- "name": "ElementaryTypeName",
- "src": "1619:7:7"
- }
- ],
- "id": 917,
- "name": "VariableDeclaration",
- "src": "1619:16:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "issuer",
- "scope": 1015,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 918,
- "name": "ElementaryTypeName",
- "src": "1637:7:7"
- }
- ],
- "id": 919,
- "name": "VariableDeclaration",
- "src": "1637:14:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "scope": 1015,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 920,
- "name": "ElementaryTypeName",
- "src": "1653:7:7"
- }
- ],
- "id": 921,
- "name": "VariableDeclaration",
- "src": "1653:22:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionTimeToLive",
- "scope": 1015,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 922,
- "name": "ElementaryTypeName",
- "src": "1677:7:7"
- }
- ],
- "id": 923,
- "name": "VariableDeclaration",
- "src": "1677:27:7"
- }
- ],
- "id": 924,
- "name": "ParameterList",
- "src": "1597:108:7"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 925,
- "name": "ParameterList",
- "src": "1713:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 926,
- "name": "Identifier",
- "src": "1717:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 927,
- "name": "Identifier",
- "src": "1725:11:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 928,
- "name": "Literal",
- "src": "1740:1:7"
- }
- ],
- "id": 929,
- "name": "BinaryOperation",
- "src": "1725:16:7"
- },
- {
- "attributes": {
- "hexvalue": "617373657274696f6e494420686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"assertionID hash cannot be zero\"",
- "value": "assertionID hash cannot be zero"
- },
- "id": 930,
- "name": "Literal",
- "src": "1743:33:7"
- }
- ],
- "id": 931,
- "name": "FunctionCall",
- "src": "1717:60:7"
- }
- ],
- "id": 932,
- "name": "ExpressionStatement",
- "src": "1717:60:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_224e5e3aafad117a551900ad41b6b8fd4124c64978d6cb6f2d999d30b5a7caf6",
- "typeString": "literal_string \"rootHash hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 933,
- "name": "Identifier",
- "src": "1781:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 917,
- "type": "bytes32",
- "value": "rootHash"
- },
- "id": 934,
- "name": "Identifier",
- "src": "1789:8:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 935,
- "name": "Literal",
- "src": "1801:1:7"
- }
- ],
- "id": 936,
- "name": "BinaryOperation",
- "src": "1789:13:7"
- },
- {
- "attributes": {
- "hexvalue": "726f6f744861736820686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"rootHash hash cannot be zero\"",
- "value": "rootHash hash cannot be zero"
- },
- "id": 937,
- "name": "Literal",
- "src": "1804:30:7"
- }
- ],
- "id": 938,
- "name": "FunctionCall",
- "src": "1781:54:7"
- }
- ],
- "id": 939,
- "name": "ExpressionStatement",
- "src": "1781:54:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fa4af5b2a5d3b443608ae031fd9009eab2ce4cb844577b417eed67d3d60328f1",
- "typeString": "literal_string \"numberOfEpochs hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 940,
- "name": "Identifier",
- "src": "1839:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 921,
- "type": "uint256",
- "value": "numberOfEpochs"
- },
- "id": 941,
- "name": "Identifier",
- "src": "1847:14:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 942,
- "name": "Literal",
- "src": "1865:1:7"
- }
- ],
- "id": 943,
- "name": "BinaryOperation",
- "src": "1847:19:7"
- },
- {
- "attributes": {
- "hexvalue": "6e756d6265724f6645706f63687320686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"numberOfEpochs hash cannot be zero\"",
- "value": "numberOfEpochs hash cannot be zero"
- },
- "id": 944,
- "name": "Literal",
- "src": "1868:36:7"
- }
- ],
- "id": 945,
- "name": "FunctionCall",
- "src": "1839:66:7"
- }
- ],
- "id": 946,
- "name": "ExpressionStatement",
- "src": "1839:66:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_069e2edd21d0b2ae0e0fdeacec1cd50fed913131221cbb295c527db83a0001af",
- "typeString": "literal_string \"assertionTimeToLive hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 947,
- "name": "Identifier",
- "src": "1909:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 923,
- "type": "uint256",
- "value": "assertionTimeToLive"
- },
- "id": 948,
- "name": "Identifier",
- "src": "1917:19:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 949,
- "name": "Literal",
- "src": "1940:1:7"
- }
- ],
- "id": 950,
- "name": "BinaryOperation",
- "src": "1917:24:7"
- },
- {
- "attributes": {
- "hexvalue": "617373657274696f6e54696d65546f4c69766520686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"assertionTimeToLive hash cannot be zero\"",
- "value": "assertionTimeToLive hash cannot be zero"
- },
- "id": 951,
- "name": "Literal",
- "src": "1943:41:7"
- }
- ],
- "id": 952,
- "name": "FunctionCall",
- "src": "1909:76:7"
- }
- ],
- "id": 953,
- "name": "ExpressionStatement",
- "src": "1909:76:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_533fbfe4d9ec6c5b4aac3ac2c85a5993318086c6dfacddd0ec06ea4b669082d1",
- "typeString": "literal_string \"Assertion already exists!\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 954,
- "name": "Identifier",
- "src": "1989:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "creationTime",
- "referencedDeclaration": 835,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 955,
- "name": "Identifier",
- "src": "1997:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 956,
- "name": "Identifier",
- "src": "2013:11:7"
- }
- ],
- "id": 957,
- "name": "IndexAccess",
- "src": "1997:28:7"
- }
- ],
- "id": 958,
- "name": "MemberAccess",
- "src": "1997:41:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 959,
- "name": "Literal",
- "src": "2040:1:7"
- }
- ],
- "id": 960,
- "name": "BinaryOperation",
- "src": "1997:44:7"
- },
- {
- "attributes": {
- "hexvalue": "417373657274696f6e20616c72656164792065786973747321",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Assertion already exists!\"",
- "value": "Assertion already exists!"
- },
- "id": 961,
- "name": "Literal",
- "src": "2043:27:7"
- }
- ],
- "id": 962,
- "name": "FunctionCall",
- "src": "1989:82:7"
- }
- ],
- "id": 963,
- "name": "ExpressionStatement",
- "src": "1989:82:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "numberOfEpochs",
- "referencedDeclaration": 833,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 964,
- "name": "Identifier",
- "src": "2129:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 965,
- "name": "Identifier",
- "src": "2145:11:7"
- }
- ],
- "id": 966,
- "name": "IndexAccess",
- "src": "2129:28:7"
- }
- ],
- "id": 967,
- "name": "MemberAccess",
- "src": "2129:43:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 921,
- "type": "uint256",
- "value": "numberOfEpochs"
- },
- "id": 968,
- "name": "Identifier",
- "src": "2175:14:7"
- }
- ],
- "id": 969,
- "name": "Assignment",
- "src": "2129:60:7"
- }
- ],
- "id": 970,
- "name": "ExpressionStatement",
- "src": "2129:60:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "assertionTimeToLive",
- "referencedDeclaration": 831,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 971,
- "name": "Identifier",
- "src": "2193:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 972,
- "name": "Identifier",
- "src": "2209:11:7"
- }
- ],
- "id": 973,
- "name": "IndexAccess",
- "src": "2193:28:7"
- }
- ],
- "id": 974,
- "name": "MemberAccess",
- "src": "2193:48:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 923,
- "type": "uint256",
- "value": "assertionTimeToLive"
- },
- "id": 975,
- "name": "Identifier",
- "src": "2244:19:7"
- }
- ],
- "id": 976,
- "name": "Assignment",
- "src": "2193:70:7"
- }
- ],
- "id": 977,
- "name": "ExpressionStatement",
- "src": "2193:70:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "creationTime",
- "referencedDeclaration": 835,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 978,
- "name": "Identifier",
- "src": "2267:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 979,
- "name": "Identifier",
- "src": "2283:11:7"
- }
- ],
- "id": 980,
- "name": "IndexAccess",
- "src": "2267:28:7"
- }
- ],
- "id": 981,
- "name": "MemberAccess",
- "src": "2267:41:7"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967292,
- "type": "block",
- "value": "block"
- },
- "id": 982,
- "name": "Identifier",
- "src": "2311:5:7"
- }
- ],
- "id": 983,
- "name": "MemberAccess",
- "src": "2311:15:7"
- }
- ],
- "id": 984,
- "name": "Assignment",
- "src": "2267:59:7"
- }
- ],
- "id": 985,
- "name": "ExpressionStatement",
- "src": "2267:59:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "rootHash",
- "referencedDeclaration": 839,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 986,
- "name": "Identifier",
- "src": "2330:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 987,
- "name": "Identifier",
- "src": "2346:11:7"
- }
- ],
- "id": 988,
- "name": "IndexAccess",
- "src": "2330:28:7"
- }
- ],
- "id": 989,
- "name": "MemberAccess",
- "src": "2330:37:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 917,
- "type": "bytes32",
- "value": "rootHash"
- },
- "id": 990,
- "name": "Identifier",
- "src": "2370:8:7"
- }
- ],
- "id": 991,
- "name": "Assignment",
- "src": "2330:48:7"
- }
- ],
- "id": 992,
- "name": "ExpressionStatement",
- "src": "2330:48:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "issuer",
- "referencedDeclaration": 837,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 993,
- "name": "Identifier",
- "src": "2382:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 994,
- "name": "Identifier",
- "src": "2398:11:7"
- }
- ],
- "id": 995,
- "name": "IndexAccess",
- "src": "2382:28:7"
- }
- ],
- "id": 996,
- "name": "MemberAccess",
- "src": "2382:35:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 919,
- "type": "address",
- "value": "issuer"
- },
- "id": 997,
- "name": "Identifier",
- "src": "2420:6:7"
- }
- ],
- "id": 998,
- "name": "Assignment",
- "src": "2382:44:7"
- }
- ],
- "id": 999,
- "name": "ExpressionStatement",
- "src": "2382:44:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 850,
- "type": "mapping(bytes32 => address)",
- "value": "assertionIssuer"
- },
- "id": 1000,
- "name": "Identifier",
- "src": "2430:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1001,
- "name": "Identifier",
- "src": "2446:11:7"
- }
- ],
- "id": 1002,
- "name": "IndexAccess",
- "src": "2430:28:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 919,
- "type": "address",
- "value": "issuer"
- },
- "id": 1003,
- "name": "Identifier",
- "src": "2461:6:7"
- }
- ],
- "id": 1004,
- "name": "Assignment",
- "src": "2430:37:7"
- }
- ],
- "id": 1005,
- "name": "ExpressionStatement",
- "src": "2430:37:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 866,
- "type": "function (bytes32,bytes32,address,uint256,uint256)",
- "value": "AssertionCreated"
- },
- "id": 1006,
- "name": "Identifier",
- "src": "2477:16:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 915,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1007,
- "name": "Identifier",
- "src": "2494:11:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 917,
- "type": "bytes32",
- "value": "rootHash"
- },
- "id": 1008,
- "name": "Identifier",
- "src": "2506:8:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 919,
- "type": "address",
- "value": "issuer"
- },
- "id": 1009,
- "name": "Identifier",
- "src": "2515:6:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 921,
- "type": "uint256",
- "value": "numberOfEpochs"
- },
- "id": 1010,
- "name": "Identifier",
- "src": "2522:14:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 923,
- "type": "uint256",
- "value": "assertionTimeToLive"
- },
- "id": 1011,
- "name": "Identifier",
- "src": "2537:19:7"
- }
- ],
- "id": 1012,
- "name": "FunctionCall",
- "src": "2477:80:7"
- }
- ],
- "id": 1013,
- "name": "EmitStatement",
- "src": "2472:85:7"
- }
- ],
- "id": 1014,
- "name": "Block",
- "src": "1713:848:7"
- }
- ],
- "id": 1015,
- "name": "FunctionDefinition",
- "src": "1567:994:7"
- },
- {
- "attributes": {
- "functionSelector": "ce64c643",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "submitHoldingProof",
- "scope": 1138,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1061,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1016,
- "name": "ElementaryTypeName",
- "src": "2604:7:7"
- }
- ],
- "id": 1017,
- "name": "VariableDeclaration",
- "src": "2604:19:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "epochAssertionProof",
- "scope": 1061,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1018,
- "name": "ElementaryTypeName",
- "src": "2625:7:7"
- }
- ],
- "id": 1019,
- "name": "VariableDeclaration",
- "src": "2625:27:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "epochNumber",
- "scope": 1061,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1020,
- "name": "ElementaryTypeName",
- "src": "2654:7:7"
- }
- ],
- "id": 1021,
- "name": "VariableDeclaration",
- "src": "2654:19:7"
- }
- ],
- "id": 1022,
- "name": "ParameterList",
- "src": "2603:71:7"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 1023,
- "name": "ParameterList",
- "src": "2684:0:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_649a3d58a096eb864e1646a68edf6e493c6de795be271ef6a8cd2b478518591c",
- "typeString": "literal_string \"assertionID hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1024,
- "name": "Identifier",
- "src": "2688:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1017,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1025,
- "name": "Identifier",
- "src": "2696:11:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1026,
- "name": "Literal",
- "src": "2711:1:7"
- }
- ],
- "id": 1027,
- "name": "BinaryOperation",
- "src": "2696:16:7"
- },
- {
- "attributes": {
- "hexvalue": "617373657274696f6e494420686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"assertionID hash cannot be zero\"",
- "value": "assertionID hash cannot be zero"
- },
- "id": 1028,
- "name": "Literal",
- "src": "2714:33:7"
- }
- ],
- "id": 1029,
- "name": "FunctionCall",
- "src": "2688:60:7"
- }
- ],
- "id": 1030,
- "name": "ExpressionStatement",
- "src": "2688:60:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_51a89ccd247a0e5232bbda470ea88b3fa7ebe5c9c4e686866df3ae98cc738613",
- "typeString": "literal_string \"epochAssertionProof hash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1031,
- "name": "Identifier",
- "src": "2752:7:7"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1019,
- "type": "bytes32",
- "value": "epochAssertionProof"
- },
- "id": 1032,
- "name": "Identifier",
- "src": "2760:19:7"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1033,
- "name": "Literal",
- "src": "2783:1:7"
- }
- ],
- "id": 1034,
- "name": "BinaryOperation",
- "src": "2760:24:7"
- },
- {
- "attributes": {
- "hexvalue": "65706f6368417373657274696f6e50726f6f6620686173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"epochAssertionProof hash cannot be zero\"",
- "value": "epochAssertionProof hash cannot be zero"
- },
- "id": 1035,
- "name": "Literal",
- "src": "2786:41:7"
- }
- ],
- "id": 1036,
- "name": "FunctionCall",
- "src": "2752:76:7"
- }
- ],
- "id": 1037,
- "name": "ExpressionStatement",
- "src": "2752:76:7"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1073,
- "type": "function (bytes32,bytes32) returns (bool)",
- "value": "verifyAssertionProof"
- },
- "id": 1038,
- "name": "Identifier",
- "src": "2837:20:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1017,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1039,
- "name": "Identifier",
- "src": "2858:11:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1019,
- "type": "bytes32",
- "value": "epochAssertionProof"
- },
- "id": 1040,
- "name": "Identifier",
- "src": "2871:19:7"
- }
- ],
- "id": 1041,
- "name": "FunctionCall",
- "src": "2837:54:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_rational_123_by_1",
- "typeString": "int_const 123"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 876,
- "type": "function (bytes32,address,uint256,uint256)",
- "value": "TokensCollected"
- },
- "id": 1042,
- "name": "Identifier",
- "src": "2902:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1017,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1043,
- "name": "Identifier",
- "src": "2918:11:7"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1044,
- "name": "Identifier",
- "src": "2930:3:7"
- }
- ],
- "id": 1045,
- "name": "MemberAccess",
- "src": "2930:10:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1021,
- "type": "uint256",
- "value": "epochNumber"
- },
- "id": 1046,
- "name": "Identifier",
- "src": "2941:11:7"
- },
- {
- "attributes": {
- "hexvalue": "313233",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 123",
- "value": "123"
- },
- "id": 1047,
- "name": "Literal",
- "src": "2954:3:7"
- }
- ],
- "id": 1048,
- "name": "FunctionCall",
- "src": "2902:56:7"
- }
- ],
- "id": 1049,
- "name": "EmitStatement",
- "src": "2897:61:7"
- }
- ],
- "id": 1050,
- "name": "Block",
- "src": "2892:72:7"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 884,
- "type": "function (bytes32,address,uint256)",
- "value": "VerificationFailed"
- },
- "id": 1051,
- "name": "Identifier",
- "src": "2981:18:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1017,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1052,
- "name": "Identifier",
- "src": "3000:11:7"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1053,
- "name": "Identifier",
- "src": "3012:3:7"
- }
- ],
- "id": 1054,
- "name": "MemberAccess",
- "src": "3012:10:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1021,
- "type": "uint256",
- "value": "epochNumber"
- },
- "id": 1055,
- "name": "Identifier",
- "src": "3023:11:7"
- }
- ],
- "id": 1056,
- "name": "FunctionCall",
- "src": "2981:54:7"
- }
- ],
- "id": 1057,
- "name": "EmitStatement",
- "src": "2976:59:7"
- }
- ],
- "id": 1058,
- "name": "Block",
- "src": "2970:71:7"
- }
- ],
- "id": 1059,
- "name": "IfStatement",
- "src": "2833:208:7"
- }
- ],
- "id": 1060,
- "name": "Block",
- "src": "2684:361:7"
- }
- ],
- "id": 1061,
- "name": "FunctionDefinition",
- "src": "2576:469:7"
- },
- {
- "attributes": {
- "functionSelector": "193f9c7e",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "verifyAssertionProof",
- "scope": 1138,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1073,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1062,
- "name": "ElementaryTypeName",
- "src": "3080:7:7"
- }
- ],
- "id": 1063,
- "name": "VariableDeclaration",
- "src": "3080:19:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "epochAssertionProof",
- "scope": 1073,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1064,
- "name": "ElementaryTypeName",
- "src": "3101:7:7"
- }
- ],
- "id": 1065,
- "name": "VariableDeclaration",
- "src": "3101:27:7"
- }
- ],
- "id": 1066,
- "name": "ParameterList",
- "src": "3079:50:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "proofValid",
- "scope": 1073,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1067,
- "name": "ElementaryTypeName",
- "src": "3148:4:7"
- }
- ],
- "id": 1068,
- "name": "VariableDeclaration",
- "src": "3148:15:7"
- }
- ],
- "id": 1069,
- "name": "ParameterList",
- "src": "3147:17:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1069
- },
- "children": [
- {
- "attributes": {
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1070,
- "name": "Literal",
- "src": "3175:4:7"
- }
- ],
- "id": 1071,
- "name": "Return",
- "src": "3168:11:7"
- }
- ],
- "id": 1072,
- "name": "Block",
- "src": "3164:20:7"
- }
- ],
- "id": 1073,
- "name": "FunctionDefinition",
- "src": "3050:134:7"
- },
- {
- "attributes": {
- "functionSelector": "0828e9f3",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionIssuer",
- "scope": 1138,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1085,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1074,
- "name": "ElementaryTypeName",
- "src": "3217:7:7"
- }
- ],
- "id": 1075,
- "name": "VariableDeclaration",
- "src": "3217:19:7"
- }
- ],
- "id": 1076,
- "name": "ParameterList",
- "src": "3216:21:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "creator",
- "scope": 1085,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1077,
- "name": "ElementaryTypeName",
- "src": "3259:7:7"
- }
- ],
- "id": 1078,
- "name": "VariableDeclaration",
- "src": "3259:15:7"
- }
- ],
- "id": 1079,
- "name": "ParameterList",
- "src": "3258:17:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1079
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 850,
- "type": "mapping(bytes32 => address)",
- "value": "assertionIssuer"
- },
- "id": 1080,
- "name": "Identifier",
- "src": "3286:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1075,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1081,
- "name": "Identifier",
- "src": "3302:11:7"
- }
- ],
- "id": 1082,
- "name": "IndexAccess",
- "src": "3286:28:7"
- }
- ],
- "id": 1083,
- "name": "Return",
- "src": "3279:35:7"
- }
- ],
- "id": 1084,
- "name": "Block",
- "src": "3275:43:7"
- }
- ],
- "id": 1085,
- "name": "FunctionDefinition",
- "src": "3189:129:7"
- },
- {
- "attributes": {
- "functionSelector": "b934b4e4",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionRootHash",
- "scope": 1138,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1098,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1086,
- "name": "ElementaryTypeName",
- "src": "3350:7:7"
- }
- ],
- "id": 1087,
- "name": "VariableDeclaration",
- "src": "3350:19:7"
- }
- ],
- "id": 1088,
- "name": "ParameterList",
- "src": "3349:21:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 1098,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1089,
- "name": "ElementaryTypeName",
- "src": "3392:7:7"
- }
- ],
- "id": 1090,
- "name": "VariableDeclaration",
- "src": "3392:16:7"
- }
- ],
- "id": 1091,
- "name": "ParameterList",
- "src": "3391:18:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1091
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "rootHash",
- "referencedDeclaration": 839,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 1092,
- "name": "Identifier",
- "src": "3420:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1087,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1093,
- "name": "Identifier",
- "src": "3436:11:7"
- }
- ],
- "id": 1094,
- "name": "IndexAccess",
- "src": "3420:28:7"
- }
- ],
- "id": 1095,
- "name": "MemberAccess",
- "src": "3420:37:7"
- }
- ],
- "id": 1096,
- "name": "Return",
- "src": "3413:44:7"
- }
- ],
- "id": 1097,
- "name": "Block",
- "src": "3409:52:7"
- }
- ],
- "id": 1098,
- "name": "FunctionDefinition",
- "src": "3320:141:7"
- },
- {
- "attributes": {
- "functionSelector": "6988bc03",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionTimeToLive",
- "scope": 1138,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1111,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1099,
- "name": "ElementaryTypeName",
- "src": "3495:7:7"
- }
- ],
- "id": 1100,
- "name": "VariableDeclaration",
- "src": "3495:19:7"
- }
- ],
- "id": 1101,
- "name": "ParameterList",
- "src": "3494:21:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "timeToLive",
- "scope": 1111,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1102,
- "name": "ElementaryTypeName",
- "src": "3537:7:7"
- }
- ],
- "id": 1103,
- "name": "VariableDeclaration",
- "src": "3537:18:7"
- }
- ],
- "id": 1104,
- "name": "ParameterList",
- "src": "3536:20:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1104
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "assertionTimeToLive",
- "referencedDeclaration": 831,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 1105,
- "name": "Identifier",
- "src": "3567:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1100,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1106,
- "name": "Identifier",
- "src": "3583:11:7"
- }
- ],
- "id": 1107,
- "name": "IndexAccess",
- "src": "3567:28:7"
- }
- ],
- "id": 1108,
- "name": "MemberAccess",
- "src": "3567:48:7"
- }
- ],
- "id": 1109,
- "name": "Return",
- "src": "3560:55:7"
- }
- ],
- "id": 1110,
- "name": "Block",
- "src": "3556:63:7"
- }
- ],
- "id": 1111,
- "name": "FunctionDefinition",
- "src": "3463:156:7"
- },
- {
- "attributes": {
- "functionSelector": "9e50e72c",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionNumberOfEpochs",
- "scope": 1138,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1124,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1112,
- "name": "ElementaryTypeName",
- "src": "3657:7:7"
- }
- ],
- "id": 1113,
- "name": "VariableDeclaration",
- "src": "3657:19:7"
- }
- ],
- "id": 1114,
- "name": "ParameterList",
- "src": "3656:21:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "numberOfEpochs",
- "scope": 1124,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1115,
- "name": "ElementaryTypeName",
- "src": "3699:7:7"
- }
- ],
- "id": 1116,
- "name": "VariableDeclaration",
- "src": "3699:22:7"
- }
- ],
- "id": 1117,
- "name": "ParameterList",
- "src": "3698:24:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1117
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "numberOfEpochs",
- "referencedDeclaration": 833,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct DKGcontract.AssertionRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 846,
- "type": "mapping(bytes32 => struct DKGcontract.AssertionRecord storage ref)",
- "value": "assertionRecord"
- },
- "id": 1118,
- "name": "Identifier",
- "src": "3733:15:7"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1113,
- "type": "bytes32",
- "value": "assertionID"
- },
- "id": 1119,
- "name": "Identifier",
- "src": "3749:11:7"
- }
- ],
- "id": 1120,
- "name": "IndexAccess",
- "src": "3733:28:7"
- }
- ],
- "id": 1121,
- "name": "MemberAccess",
- "src": "3733:43:7"
- }
- ],
- "id": 1122,
- "name": "Return",
- "src": "3726:50:7"
- }
- ],
- "id": 1123,
- "name": "Block",
- "src": "3722:58:7"
- }
- ],
- "id": 1124,
- "name": "FunctionDefinition",
- "src": "3621:159:7"
- },
- {
- "attributes": {
- "functionSelector": "08c4933b",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionTask",
- "scope": 1138,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionID",
- "scope": 1137,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1125,
- "name": "ElementaryTypeName",
- "src": "3809:7:7"
- }
- ],
- "id": 1126,
- "name": "VariableDeclaration",
- "src": "3809:19:7"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "epoch",
- "scope": 1137,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1127,
- "name": "ElementaryTypeName",
- "src": "3830:7:7"
- }
- ],
- "id": 1128,
- "name": "VariableDeclaration",
- "src": "3830:13:7"
- }
- ],
- "id": 1129,
- "name": "ParameterList",
- "src": "3808:36:7"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "task",
- "scope": 1137,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1130,
- "name": "ElementaryTypeName",
- "src": "3866:7:7"
- }
- ],
- "id": 1131,
- "name": "VariableDeclaration",
- "src": "3866:12:7"
- }
- ],
- "id": 1132,
- "name": "ParameterList",
- "src": "3865:14:7"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1132
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "number",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967292,
- "type": "block",
- "value": "block"
- },
- "id": 1133,
- "name": "Identifier",
- "src": "3890:5:7"
- }
- ],
- "id": 1134,
- "name": "MemberAccess",
- "src": "3890:12:7"
- }
- ],
- "id": 1135,
- "name": "Return",
- "src": "3883:19:7"
- }
- ],
- "id": 1136,
- "name": "Block",
- "src": "3879:27:7"
- }
- ],
- "id": 1137,
- "name": "FunctionDefinition",
- "src": "3783:123:7"
- }
- ],
- "id": 1138,
- "name": "ContractDefinition",
- "src": "286:3623:7"
- }
- ],
- "id": 1139,
- "name": "SourceUnit",
- "src": "0:3909:7"
- },
- "compiler": {
- "name": "solc",
- "version": "0.7.6+commit.7338295f.Emscripten.clang"
- },
- "networks": {
- "5777": {
- "events": {
- "0x25e2604032d2f5a218a9bed084fc10fd98b83e3b86a79ba39c21409598425016": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionIssuer",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "numberOfEpochs",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "assertionTimeToLive",
- "type": "uint256"
- }
- ],
- "name": "AssertionCreated",
- "type": "event"
- },
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- "0xd82cad5fdc98633445b90f806f2e1a61a5409f92187ee9cd87f1da18c9069266": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "token",
- "type": "address"
- }
- ],
- "name": "TokenAddressSet",
- "type": "event"
- },
- "0xce001fcd900079c312eaa96f5c1c389ffe207eb41e90197f5a011668b58ef598": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "TokensCollected",
- "type": "event"
- },
- "0x37d4188105d31e43e2177257c4e9cc2c8eda5c0783943eb00abe942ac687b03a": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- }
- ],
- "name": "VerificationFailed",
- "type": "event"
- }
- },
- "links": {},
- "address": "0xF21dD87cFC5cF5D073398833AFe5EFC543b78a00",
- "transactionHash": "0x40a53672d00490972d444552be6eba8c4a68ce5ecad3d3acaad9228ba9a4e35b"
- },
- "80001": {
- "events": {
- "0x25e2604032d2f5a218a9bed084fc10fd98b83e3b86a79ba39c21409598425016": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionIssuer",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "numberOfEpochs",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "assertionTimeToLive",
- "type": "uint256"
- }
- ],
- "name": "AssertionCreated",
- "type": "event"
- },
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- "0xd82cad5fdc98633445b90f806f2e1a61a5409f92187ee9cd87f1da18c9069266": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "token",
- "type": "address"
- }
- ],
- "name": "TokenAddressSet",
- "type": "event"
- },
- "0xce001fcd900079c312eaa96f5c1c389ffe207eb41e90197f5a011668b58ef598": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "TokensCollected",
- "type": "event"
- },
- "0x37d4188105d31e43e2177257c4e9cc2c8eda5c0783943eb00abe942ac687b03a": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "assertionID",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "prover",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "epoch",
- "type": "uint256"
- }
- ],
- "name": "VerificationFailed",
- "type": "event"
- }
- },
- "links": {},
- "address": "0xEd8ecA1917F586B67D2fB88930002E60828958a6",
- "transactionHash": "0x130e35fb264aec93b34330b463b8bcc846c5f926a9df3326a6a7ca3fe0fd0831"
- }
- },
- "schemaVersion": "3.4.3",
- "updatedAt": "2022-02-11T10:13:46.687Z",
- "networkType": "ethereum",
- "devdoc": {
- "kind": "dev",
- "methods": {
- "owner()": {
- "details": "Returns the address of the current owner."
- },
- "renounceOwnership()": {
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
- },
- "transferOwnership(address)": {
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
\ No newline at end of file
diff --git a/build/contracts/IERC20.json b/build/contracts/IERC20.json
deleted file mode 100644
index 35bb29337..000000000
--- a/build/contracts/IERC20.json
+++ /dev/null
@@ -1,2190 +0,0 @@
-{
- "contractName": "IERC20",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Approval",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "from",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "to",
- "type": "address"
- },
- {
- "indexed": false,
- "internalType": "uint256",
- "name": "value",
- "type": "uint256"
- }
- ],
- "name": "Transfer",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "totalSupply",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "account",
- "type": "address"
- }
- ],
- "name": "balanceOf",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transfer",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "owner",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- }
- ],
- "name": "allowance",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "spender",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "approve",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "sender",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "recipient",
- "type": "address"
- },
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- }
- ],
- "name": "transferFrom",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n",
- "sourcePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "ast": {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "exportedSymbols": {
- "IERC20": [
- 542
- ]
- },
- "id": 543,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 466,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "33:31:2"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "interface",
- "documentation": {
- "id": 467,
- "nodeType": "StructuredDocumentation",
- "src": "66:70:2",
- "text": " @dev Interface of the ERC20 standard as defined in the EIP."
- },
- "fullyImplemented": false,
- "id": 542,
- "linearizedBaseContracts": [
- 542
- ],
- "name": "IERC20",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": null,
- "documentation": {
- "id": 468,
- "nodeType": "StructuredDocumentation",
- "src": "160:66:2",
- "text": " @dev Returns the amount of tokens in existence."
- },
- "functionSelector": "18160ddd",
- "id": 473,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "totalSupply",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 469,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "251:2:2"
- },
- "returnParameters": {
- "id": 472,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 471,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 473,
- "src": "277:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 470,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "277:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "276:9:2"
- },
- "scope": 542,
- "src": "231:55:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 474,
- "nodeType": "StructuredDocumentation",
- "src": "292:72:2",
- "text": " @dev Returns the amount of tokens owned by `account`."
- },
- "functionSelector": "70a08231",
- "id": 481,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "balanceOf",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 477,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 476,
- "mutability": "mutable",
- "name": "account",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 481,
- "src": "388:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 475,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "388:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "387:17:2"
- },
- "returnParameters": {
- "id": 480,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 479,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 481,
- "src": "428:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 478,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "428:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "427:9:2"
- },
- "scope": 542,
- "src": "369:68:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 482,
- "nodeType": "StructuredDocumentation",
- "src": "443:209:2",
- "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "functionSelector": "a9059cbb",
- "id": 491,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "transfer",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 487,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 484,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 491,
- "src": "675:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 483,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "675:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 486,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 491,
- "src": "694:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 485,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "694:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "674:35:2"
- },
- "returnParameters": {
- "id": 490,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 489,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 491,
- "src": "728:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 488,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "728:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "727:6:2"
- },
- "scope": 542,
- "src": "657:77:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 492,
- "nodeType": "StructuredDocumentation",
- "src": "740:264:2",
- "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
- },
- "functionSelector": "dd62ed3e",
- "id": 501,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "allowance",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 497,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 494,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 501,
- "src": "1028:13:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 493,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1028:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 496,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 501,
- "src": "1043:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 495,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1043:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1027:32:2"
- },
- "returnParameters": {
- "id": 500,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 499,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 501,
- "src": "1083:7:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 498,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1083:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1082:9:2"
- },
- "scope": 542,
- "src": "1009:83:2",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 502,
- "nodeType": "StructuredDocumentation",
- "src": "1098:642:2",
- "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
- },
- "functionSelector": "095ea7b3",
- "id": 511,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "approve",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 507,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 504,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 511,
- "src": "1762:15:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 503,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1762:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 506,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 511,
- "src": "1779:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 505,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1779:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1761:33:2"
- },
- "returnParameters": {
- "id": 510,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 509,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 511,
- "src": "1813:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 508,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1813:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1812:6:2"
- },
- "scope": 542,
- "src": "1745:74:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "body": null,
- "documentation": {
- "id": 512,
- "nodeType": "StructuredDocumentation",
- "src": "1825:296:2",
- "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "functionSelector": "23b872dd",
- "id": 523,
- "implemented": false,
- "kind": "function",
- "modifiers": [],
- "name": "transferFrom",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 519,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 514,
- "mutability": "mutable",
- "name": "sender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2148:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 513,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2148:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 516,
- "mutability": "mutable",
- "name": "recipient",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2164:17:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 515,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2164:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 518,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2183:14:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 517,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2183:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2147:51:2"
- },
- "returnParameters": {
- "id": 522,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 521,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 523,
- "src": "2217:4:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 520,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2217:4:2",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2216:6:2"
- },
- "scope": 542,
- "src": "2126:97:2",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- {
- "anonymous": false,
- "documentation": {
- "id": 524,
- "nodeType": "StructuredDocumentation",
- "src": "2229:158:2",
- "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
- },
- "id": 532,
- "name": "Transfer",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 531,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 526,
- "indexed": true,
- "mutability": "mutable",
- "name": "from",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 532,
- "src": "2407:20:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 525,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2407:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 528,
- "indexed": true,
- "mutability": "mutable",
- "name": "to",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 532,
- "src": "2429:18:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 527,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2429:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 530,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 532,
- "src": "2449:13:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 529,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2449:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2406:57:2"
- },
- "src": "2392:72:2"
- },
- {
- "anonymous": false,
- "documentation": {
- "id": 533,
- "nodeType": "StructuredDocumentation",
- "src": "2470:148:2",
- "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
- },
- "id": 541,
- "name": "Approval",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 540,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 535,
- "indexed": true,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 541,
- "src": "2638:21:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 534,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2638:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 537,
- "indexed": true,
- "mutability": "mutable",
- "name": "spender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 541,
- "src": "2661:23:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 536,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2661:7:2",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 539,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 541,
- "src": "2686:13:2",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 538,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2686:7:2",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2637:63:2"
- },
- "src": "2623:78:2"
- }
- ],
- "scope": 543,
- "src": "137:2566:2"
- }
- ],
- "src": "33:2671:2"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "exportedSymbols": {
- "IERC20": [
- 542
- ]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 466,
- "name": "PragmaDirective",
- "src": "33:31:2"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [
- null
- ],
- "contractDependencies": [
- null
- ],
- "contractKind": "interface",
- "fullyImplemented": false,
- "linearizedBaseContracts": [
- 542
- ],
- "name": "IERC20",
- "scope": 543
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Interface of the ERC20 standard as defined in the EIP."
- },
- "id": 467,
- "name": "StructuredDocumentation",
- "src": "66:70:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "18160ddd",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "totalSupply",
- "overrides": null,
- "scope": 542,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the amount of tokens in existence."
- },
- "id": 468,
- "name": "StructuredDocumentation",
- "src": "160:66:2"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 469,
- "name": "ParameterList",
- "src": "251:2:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 473,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 470,
- "name": "ElementaryTypeName",
- "src": "277:7:2"
- }
- ],
- "id": 471,
- "name": "VariableDeclaration",
- "src": "277:7:2"
- }
- ],
- "id": 472,
- "name": "ParameterList",
- "src": "276:9:2"
- }
- ],
- "id": 473,
- "name": "FunctionDefinition",
- "src": "231:55:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "70a08231",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "balanceOf",
- "overrides": null,
- "scope": 542,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the amount of tokens owned by `account`."
- },
- "id": 474,
- "name": "StructuredDocumentation",
- "src": "292:72:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "account",
- "overrides": null,
- "scope": 481,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 475,
- "name": "ElementaryTypeName",
- "src": "388:7:2"
- }
- ],
- "id": 476,
- "name": "VariableDeclaration",
- "src": "388:15:2"
- }
- ],
- "id": 477,
- "name": "ParameterList",
- "src": "387:17:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 481,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 478,
- "name": "ElementaryTypeName",
- "src": "428:7:2"
- }
- ],
- "id": 479,
- "name": "VariableDeclaration",
- "src": "428:7:2"
- }
- ],
- "id": 480,
- "name": "ParameterList",
- "src": "427:9:2"
- }
- ],
- "id": 481,
- "name": "FunctionDefinition",
- "src": "369:68:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "a9059cbb",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "transfer",
- "overrides": null,
- "scope": 542,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves `amount` tokens from the caller's account to `recipient`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "id": 482,
- "name": "StructuredDocumentation",
- "src": "443:209:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 491,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 483,
- "name": "ElementaryTypeName",
- "src": "675:7:2"
- }
- ],
- "id": 484,
- "name": "VariableDeclaration",
- "src": "675:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 491,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 485,
- "name": "ElementaryTypeName",
- "src": "694:7:2"
- }
- ],
- "id": 486,
- "name": "VariableDeclaration",
- "src": "694:14:2"
- }
- ],
- "id": 487,
- "name": "ParameterList",
- "src": "674:35:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 491,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 488,
- "name": "ElementaryTypeName",
- "src": "728:4:2"
- }
- ],
- "id": 489,
- "name": "VariableDeclaration",
- "src": "728:4:2"
- }
- ],
- "id": 490,
- "name": "ParameterList",
- "src": "727:6:2"
- }
- ],
- "id": 491,
- "name": "FunctionDefinition",
- "src": "657:77:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "dd62ed3e",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "allowance",
- "overrides": null,
- "scope": 542,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."
- },
- "id": 492,
- "name": "StructuredDocumentation",
- "src": "740:264:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 501,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 493,
- "name": "ElementaryTypeName",
- "src": "1028:7:2"
- }
- ],
- "id": 494,
- "name": "VariableDeclaration",
- "src": "1028:13:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 501,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 495,
- "name": "ElementaryTypeName",
- "src": "1043:7:2"
- }
- ],
- "id": 496,
- "name": "VariableDeclaration",
- "src": "1043:15:2"
- }
- ],
- "id": 497,
- "name": "ParameterList",
- "src": "1027:32:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 501,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 498,
- "name": "ElementaryTypeName",
- "src": "1083:7:2"
- }
- ],
- "id": 499,
- "name": "VariableDeclaration",
- "src": "1083:7:2"
- }
- ],
- "id": 500,
- "name": "ParameterList",
- "src": "1082:9:2"
- }
- ],
- "id": 501,
- "name": "FunctionDefinition",
- "src": "1009:83:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "095ea7b3",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "approve",
- "overrides": null,
- "scope": 542,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."
- },
- "id": 502,
- "name": "StructuredDocumentation",
- "src": "1098:642:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 503,
- "name": "ElementaryTypeName",
- "src": "1762:7:2"
- }
- ],
- "id": 504,
- "name": "VariableDeclaration",
- "src": "1762:15:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 505,
- "name": "ElementaryTypeName",
- "src": "1779:7:2"
- }
- ],
- "id": 506,
- "name": "VariableDeclaration",
- "src": "1779:14:2"
- }
- ],
- "id": 507,
- "name": "ParameterList",
- "src": "1761:33:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 511,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 508,
- "name": "ElementaryTypeName",
- "src": "1813:4:2"
- }
- ],
- "id": 509,
- "name": "VariableDeclaration",
- "src": "1813:4:2"
- }
- ],
- "id": 510,
- "name": "ParameterList",
- "src": "1812:6:2"
- }
- ],
- "id": 511,
- "name": "FunctionDefinition",
- "src": "1745:74:2"
- },
- {
- "attributes": {
- "body": null,
- "functionSelector": "23b872dd",
- "implemented": false,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "transferFrom",
- "overrides": null,
- "scope": 542,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "external"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Moves `amount` tokens from `sender` to `recipient` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."
- },
- "id": 512,
- "name": "StructuredDocumentation",
- "src": "1825:296:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "sender",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 513,
- "name": "ElementaryTypeName",
- "src": "2148:7:2"
- }
- ],
- "id": 514,
- "name": "VariableDeclaration",
- "src": "2148:14:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "recipient",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 515,
- "name": "ElementaryTypeName",
- "src": "2164:7:2"
- }
- ],
- "id": 516,
- "name": "VariableDeclaration",
- "src": "2164:17:2"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 517,
- "name": "ElementaryTypeName",
- "src": "2183:7:2"
- }
- ],
- "id": 518,
- "name": "VariableDeclaration",
- "src": "2183:14:2"
- }
- ],
- "id": 519,
- "name": "ParameterList",
- "src": "2147:51:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 523,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 520,
- "name": "ElementaryTypeName",
- "src": "2217:4:2"
- }
- ],
- "id": 521,
- "name": "VariableDeclaration",
- "src": "2217:4:2"
- }
- ],
- "id": 522,
- "name": "ParameterList",
- "src": "2216:6:2"
- }
- ],
- "id": 523,
- "name": "FunctionDefinition",
- "src": "2126:97:2"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "Transfer"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."
- },
- "id": 524,
- "name": "StructuredDocumentation",
- "src": "2229:158:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "from",
- "overrides": null,
- "scope": 532,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 525,
- "name": "ElementaryTypeName",
- "src": "2407:7:2"
- }
- ],
- "id": 526,
- "name": "VariableDeclaration",
- "src": "2407:20:2"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "to",
- "overrides": null,
- "scope": 532,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 527,
- "name": "ElementaryTypeName",
- "src": "2429:7:2"
- }
- ],
- "id": 528,
- "name": "VariableDeclaration",
- "src": "2429:18:2"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 532,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 529,
- "name": "ElementaryTypeName",
- "src": "2449:7:2"
- }
- ],
- "id": 530,
- "name": "VariableDeclaration",
- "src": "2449:13:2"
- }
- ],
- "id": 531,
- "name": "ParameterList",
- "src": "2406:57:2"
- }
- ],
- "id": 532,
- "name": "EventDefinition",
- "src": "2392:72:2"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "Approval"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."
- },
- "id": 533,
- "name": "StructuredDocumentation",
- "src": "2470:148:2"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 541,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 534,
- "name": "ElementaryTypeName",
- "src": "2638:7:2"
- }
- ],
- "id": 535,
- "name": "VariableDeclaration",
- "src": "2638:21:2"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "spender",
- "overrides": null,
- "scope": 541,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 536,
- "name": "ElementaryTypeName",
- "src": "2661:7:2"
- }
- ],
- "id": 537,
- "name": "VariableDeclaration",
- "src": "2661:23:2"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": false,
- "mutability": "mutable",
- "name": "value",
- "overrides": null,
- "scope": 541,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 538,
- "name": "ElementaryTypeName",
- "src": "2686:7:2"
- }
- ],
- "id": 539,
- "name": "VariableDeclaration",
- "src": "2686:13:2"
- }
- ],
- "id": 540,
- "name": "ParameterList",
- "src": "2637:63:2"
- }
- ],
- "id": 541,
- "name": "EventDefinition",
- "src": "2623:78:2"
- }
- ],
- "id": 542,
- "name": "ContractDefinition",
- "src": "137:2566:2"
- }
- ],
- "id": 543,
- "name": "SourceUnit",
- "src": "33:2671:2"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.4.3",
- "updatedAt": "2021-10-13T15:44:47.629Z",
- "devdoc": {
- "details": "Interface of the ERC20 standard as defined in the EIP.",
- "methods": {
- "allowance(address,address)": {
- "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."
- },
- "approve(address,uint256)": {
- "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."
- },
- "balanceOf(address)": {
- "details": "Returns the amount of tokens owned by `account`."
- },
- "totalSupply()": {
- "details": "Returns the amount of tokens in existence."
- },
- "transfer(address,uint256)": {
- "details": "Moves `amount` tokens from the caller's account to `recipient`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- },
- "transferFrom(address,address,uint256)": {
- "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."
- }
- }
- },
- "userdoc": {
- "methods": {}
- }
-}
\ No newline at end of file
diff --git a/build/contracts/Migrations.json b/build/contracts/Migrations.json
deleted file mode 100644
index 9c21cdc64..000000000
--- a/build/contracts/Migrations.json
+++ /dev/null
@@ -1,964 +0,0 @@
-{
- "contractName": "Migrations",
- "abi": [
- {
- "inputs": [],
- "name": "last_completed_migration",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "completed",
- "type": "uint256"
- }
- ],
- "name": "setCompleted",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"project:/contracts/Migrations.sol\":{\"keccak256\":\"0x7eaedbb1a3e4e0f585d9063393872f88ded247ca3c3c3c8492ea18e7629a6411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a3eb571cee910095df65a06a1c1d3f89187c72a3c184ef87a7538d9aa39ad07\",\"dweb:/ipfs/QmdqR3vrSSGR49qFGZr49Mb39z7dgD6tSzEDoaqtM31o61\"]}},\"version\":1}",
- "bytecode": "0x6080604052336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555034801561005057600080fd5b5061021f806100606000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101b76033913960400191505060405180910390fd5b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122053e3def27f71b96a8a81060455eb34bf7af211328df3e4e3ea9be53f3fbc0c6f64736f6c634300060a0033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063445df0ac146100465780638da5cb5b14610064578063fdacd576146100ae575b600080fd5b61004e6100dc565b6040518082815260200191505060405180910390f35b61006c6100e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610107565b005b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806101b76033913960400191505060405180910390fd5b806001819055505056fe546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572a264697066735822122053e3def27f71b96a8a81060455eb34bf7af211328df3e4e3ea9be53f3fbc0c6f64736f6c634300060a0033",
- "immutableReferences": {},
- "sourceMap": "66:352:5:-:0;;;113:10;90:33;;;;;;;;;;;;;;;;;;;;66:352;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "66:352:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;127:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;90:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;313:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;127:36;;;;:::o;90:33::-;;;;;;;;;;;;;:::o;313:103::-;225:5;;;;;;;;;;;211:19;;:10;:19;;;196:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;402:9:::1;375:24;:36;;;;313:103:::0;:::o",
- "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\ncontract Migrations {\n address public owner = msg.sender;\n uint public last_completed_migration;\n\n modifier restricted() {\n require(\n msg.sender == owner,\n \"This function is restricted to the contract's owner\"\n );\n _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n}\n",
- "sourcePath": "/Users/miloskotlar/dkg-onchain-module-v6/contracts/Migrations.sol",
- "ast": {
- "absolutePath": "project:/contracts/Migrations.sol",
- "exportedSymbols": {
- "Migrations": [
- 878
- ]
- },
- "id": 879,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 847,
- "literals": [
- "solidity",
- ">=",
- "0.4",
- ".22",
- "<",
- "0.9",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "32:32:5"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "id": 878,
- "linearizedBaseContracts": [
- 878
- ],
- "name": "Migrations",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "constant": false,
- "functionSelector": "8da5cb5b",
- "id": 851,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 878,
- "src": "90:33:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 848,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "90:7:5",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 849,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "113:3:5",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 850,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "113:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "445df0ac",
- "id": 853,
- "mutability": "mutable",
- "name": "last_completed_migration",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 878,
- "src": "127:36:5",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 852,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "127:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "public"
- },
- {
- "body": {
- "id": 864,
- "nodeType": "Block",
- "src": "190:119:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 859,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "expression": {
- "argumentTypes": null,
- "id": 856,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": -15,
- "src": "211:3:5",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 857,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "referencedDeclaration": null,
- "src": "211:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 858,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 851,
- "src": "225:5:5",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "211:19:5",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572",
- "id": 860,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "238:53:5",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1",
- "typeString": "literal_string \"This function is restricted to the contract's owner\""
- },
- "value": "This function is restricted to the contract's owner"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1",
- "typeString": "literal_string \"This function is restricted to the contract's owner\""
- }
- ],
- "id": 855,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "196:7:5",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 861,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "196:101:5",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 862,
- "nodeType": "ExpressionStatement",
- "src": "196:101:5"
- },
- {
- "id": 863,
- "nodeType": "PlaceholderStatement",
- "src": "303:1:5"
- }
- ]
- },
- "documentation": null,
- "id": 865,
- "name": "restricted",
- "nodeType": "ModifierDefinition",
- "overrides": null,
- "parameters": {
- "id": 854,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "187:2:5"
- },
- "src": "168:141:5",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 876,
- "nodeType": "Block",
- "src": "369:47:5",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 874,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 872,
- "name": "last_completed_migration",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 853,
- "src": "375:24:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 873,
- "name": "completed",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 867,
- "src": "402:9:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "375:36:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 875,
- "nodeType": "ExpressionStatement",
- "src": "375:36:5"
- }
- ]
- },
- "documentation": null,
- "functionSelector": "fdacd576",
- "id": 877,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 870,
- "modifierName": {
- "argumentTypes": null,
- "id": 869,
- "name": "restricted",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 865,
- "src": "358:10:5",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "358:10:5"
- }
- ],
- "name": "setCompleted",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 868,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 867,
- "mutability": "mutable",
- "name": "completed",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 877,
- "src": "335:14:5",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 866,
- "name": "uint",
- "nodeType": "ElementaryTypeName",
- "src": "335:4:5",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "334:16:5"
- },
- "returnParameters": {
- "id": 871,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "369:0:5"
- },
- "scope": 878,
- "src": "313:103:5",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- }
- ],
- "scope": 879,
- "src": "66:352:5"
- }
- ],
- "src": "32:387:5"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "project:/contracts/Migrations.sol",
- "exportedSymbols": {
- "Migrations": [
- 878
- ]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.4",
- ".22",
- "<",
- "0.9",
- ".0"
- ]
- },
- "id": 847,
- "name": "PragmaDirective",
- "src": "32:32:5"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [
- null
- ],
- "contractDependencies": [
- null
- ],
- "contractKind": "contract",
- "documentation": null,
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 878
- ],
- "name": "Migrations",
- "scope": 879
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "functionSelector": "8da5cb5b",
- "mutability": "mutable",
- "name": "owner",
- "overrides": null,
- "scope": 878,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 848,
- "name": "ElementaryTypeName",
- "src": "90:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 849,
- "name": "Identifier",
- "src": "113:3:5"
- }
- ],
- "id": 850,
- "name": "MemberAccess",
- "src": "113:10:5"
- }
- ],
- "id": 851,
- "name": "VariableDeclaration",
- "src": "90:33:5"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "445df0ac",
- "mutability": "mutable",
- "name": "last_completed_migration",
- "overrides": null,
- "scope": 878,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 852,
- "name": "ElementaryTypeName",
- "src": "127:4:5"
- }
- ],
- "id": 853,
- "name": "VariableDeclaration",
- "src": "127:36:5"
- },
- {
- "attributes": {
- "documentation": null,
- "name": "restricted",
- "overrides": null,
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 854,
- "name": "ParameterList",
- "src": "187:2:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_f60fe2d9d123295bf92ecf95167f1fa709e374da35e4c083bd39dc2d82acd8b1",
- "typeString": "literal_string \"This function is restricted to the contract's owner\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 855,
- "name": "Identifier",
- "src": "196:7:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "referencedDeclaration": null,
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": -15,
- "type": "msg",
- "value": "msg"
- },
- "id": 856,
- "name": "Identifier",
- "src": "211:3:5"
- }
- ],
- "id": 857,
- "name": "MemberAccess",
- "src": "211:10:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 851,
- "type": "address",
- "value": "owner"
- },
- "id": 858,
- "name": "Identifier",
- "src": "225:5:5"
- }
- ],
- "id": 859,
- "name": "BinaryOperation",
- "src": "211:19:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "546869732066756e6374696f6e206973207265737472696374656420746f2074686520636f6e74726163742773206f776e6572",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"This function is restricted to the contract's owner\"",
- "value": "This function is restricted to the contract's owner"
- },
- "id": 860,
- "name": "Literal",
- "src": "238:53:5"
- }
- ],
- "id": 861,
- "name": "FunctionCall",
- "src": "196:101:5"
- }
- ],
- "id": 862,
- "name": "ExpressionStatement",
- "src": "196:101:5"
- },
- {
- "id": 863,
- "name": "PlaceholderStatement",
- "src": "303:1:5"
- }
- ],
- "id": 864,
- "name": "Block",
- "src": "190:119:5"
- }
- ],
- "id": 865,
- "name": "ModifierDefinition",
- "src": "168:141:5"
- },
- {
- "attributes": {
- "documentation": null,
- "functionSelector": "fdacd576",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "setCompleted",
- "overrides": null,
- "scope": 878,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "completed",
- "overrides": null,
- "scope": 877,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint",
- "type": "uint256"
- },
- "id": 866,
- "name": "ElementaryTypeName",
- "src": "335:4:5"
- }
- ],
- "id": 867,
- "name": "VariableDeclaration",
- "src": "335:14:5"
- }
- ],
- "id": 868,
- "name": "ParameterList",
- "src": "334:16:5"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 871,
- "name": "ParameterList",
- "src": "369:0:5"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 865,
- "type": "modifier ()",
- "value": "restricted"
- },
- "id": 869,
- "name": "Identifier",
- "src": "358:10:5"
- }
- ],
- "id": 870,
- "name": "ModifierInvocation",
- "src": "358:10:5"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 853,
- "type": "uint256",
- "value": "last_completed_migration"
- },
- "id": 872,
- "name": "Identifier",
- "src": "375:24:5"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 867,
- "type": "uint256",
- "value": "completed"
- },
- "id": 873,
- "name": "Identifier",
- "src": "402:9:5"
- }
- ],
- "id": 874,
- "name": "Assignment",
- "src": "375:36:5"
- }
- ],
- "id": 875,
- "name": "ExpressionStatement",
- "src": "375:36:5"
- }
- ],
- "id": 876,
- "name": "Block",
- "src": "369:47:5"
- }
- ],
- "id": 877,
- "name": "FunctionDefinition",
- "src": "313:103:5"
- }
- ],
- "id": 878,
- "name": "ContractDefinition",
- "src": "66:352:5"
- }
- ],
- "id": 879,
- "name": "SourceUnit",
- "src": "32:387:5"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
- },
- "networks": {
- "5777": {
- "events": {},
- "links": {},
- "address": "0x209679fA3B658Cd0fC74473aF28243bfe78a9b12",
- "transactionHash": "0x1b799766152a61bbf51ae5bdb6db5133b01f841d163789462be37a3109ad0eea"
- },
- "80001": {
- "events": {},
- "links": {},
- "address": "0xB0d4300e8376F3d9c58eF8edD534A8b42cf964aE",
- "transactionHash": "0xf8ad7ba3a442068ff480d9d70bf65320a5cf92073592d52f953ab16b560e699b"
- }
- },
- "schemaVersion": "3.4.3",
- "updatedAt": "2022-02-11T10:13:46.713Z",
- "networkType": "ethereum",
- "devdoc": {
- "methods": {}
- },
- "userdoc": {
- "methods": {}
- }
-}
\ No newline at end of file
diff --git a/build/contracts/Ownable.json b/build/contracts/Ownable.json
deleted file mode 100644
index ae5caf91c..000000000
--- a/build/contracts/Ownable.json
+++ /dev/null
@@ -1,3056 +0,0 @@
-{
- "contractName": "Ownable",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/access/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"openzeppelin-solidity/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]}},\"version\":1}",
- "bytecode": "0x",
- "deployedBytecode": "0x",
- "immutableReferences": {},
- "sourceMap": "",
- "deployedSourceMap": "",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"../utils/Context.sol\";\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * By default, the owner account will be the one that deploys the contract. This\n * can later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n address msgSender = _msgSender();\n _owner = msgSender;\n emit OwnershipTransferred(address(0), msgSender);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(owner() == _msgSender(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\n emit OwnershipTransferred(_owner, newOwner);\n _owner = newOwner;\n }\n}\n",
- "sourcePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "ast": {
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "exportedSymbols": {
- "Ownable": [
- 109
- ]
- },
- "id": 110,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 1,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "33:31:0"
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol",
- "file": "../utils/Context.sol",
- "id": 2,
- "nodeType": "ImportDirective",
- "scope": 110,
- "sourceUnit": 566,
- "src": "66:30:0",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": true,
- "baseContracts": [
- {
- "arguments": null,
- "baseName": {
- "contractScope": null,
- "id": 4,
- "name": "Context",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 565,
- "src": "621:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Context_$565",
- "typeString": "contract Context"
- }
- },
- "id": 5,
- "nodeType": "InheritanceSpecifier",
- "src": "621:7:0"
- }
- ],
- "contractDependencies": [
- 565
- ],
- "contractKind": "contract",
- "documentation": {
- "id": 3,
- "nodeType": "StructuredDocumentation",
- "src": "97:494:0",
- "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."
- },
- "fullyImplemented": true,
- "id": 109,
- "linearizedBaseContracts": [
- 109,
- 565
- ],
- "name": "Ownable",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "constant": false,
- "id": 7,
- "mutability": "mutable",
- "name": "_owner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 109,
- "src": "635:22:0",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 6,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "635:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "private"
- },
- {
- "anonymous": false,
- "documentation": null,
- "id": 13,
- "name": "OwnershipTransferred",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 12,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 9,
- "indexed": true,
- "mutability": "mutable",
- "name": "previousOwner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 13,
- "src": "691:29:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 8,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "691:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 11,
- "indexed": true,
- "mutability": "mutable",
- "name": "newOwner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 13,
- "src": "722:24:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 10,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "722:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "690:57:0"
- },
- "src": "664:84:0"
- },
- {
- "body": {
- "id": 34,
- "nodeType": "Block",
- "src": "874:135:0",
- "statements": [
- {
- "assignments": [
- 18
- ],
- "declarations": [
- {
- "constant": false,
- "id": 18,
- "mutability": "mutable",
- "name": "msgSender",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 34,
- "src": "884:17:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 17,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "884:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 21,
- "initialValue": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 19,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 553,
- "src": "904:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 20,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "904:12:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "884:32:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 24,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 22,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "926:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 23,
- "name": "msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 18,
- "src": "935:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "926:18:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 25,
- "nodeType": "ExpressionStatement",
- "src": "926:18:0"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 29,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "988:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 28,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "980:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 27,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "980:7:0",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 30,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "980:10:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "argumentTypes": null,
- "id": 31,
- "name": "msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 18,
- "src": "992:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 26,
- "name": "OwnershipTransferred",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 13,
- "src": "959:20:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
- "typeString": "function (address,address)"
- }
- },
- "id": 32,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "959:43:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 33,
- "nodeType": "EmitStatement",
- "src": "954:48:0"
- }
- ]
- },
- "documentation": {
- "id": 14,
- "nodeType": "StructuredDocumentation",
- "src": "754:91:0",
- "text": " @dev Initializes the contract setting the deployer as the initial owner."
- },
- "id": 35,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 15,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "862:2:0"
- },
- "returnParameters": {
- "id": 16,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "874:0:0"
- },
- "scope": 109,
- "src": "850:159:0",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 43,
- "nodeType": "Block",
- "src": "1140:30:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "id": 41,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "1157:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "functionReturnParameters": 40,
- "id": 42,
- "nodeType": "Return",
- "src": "1150:13:0"
- }
- ]
- },
- "documentation": {
- "id": 36,
- "nodeType": "StructuredDocumentation",
- "src": "1015:65:0",
- "text": " @dev Returns the address of the current owner."
- },
- "functionSelector": "8da5cb5b",
- "id": 44,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "owner",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 37,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1099:2:0"
- },
- "returnParameters": {
- "id": 40,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 39,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 44,
- "src": "1131:7:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 38,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1131:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1130:9:0"
- },
- "scope": 109,
- "src": "1085:85:0",
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 57,
- "nodeType": "Block",
- "src": "1279:96:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 52,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 48,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 44,
- "src": "1297:5:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
- "typeString": "function () view returns (address)"
- }
- },
- "id": 49,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1297:7:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [],
- "expression": {
- "argumentTypes": [],
- "id": 50,
- "name": "_msgSender",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 553,
- "src": "1308:10:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$",
- "typeString": "function () view returns (address payable)"
- }
- },
- "id": 51,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1308:12:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "1297:23:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
- "id": 53,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1322:34:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe",
- "typeString": "literal_string \"Ownable: caller is not the owner\""
- },
- "value": "Ownable: caller is not the owner"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe",
- "typeString": "literal_string \"Ownable: caller is not the owner\""
- }
- ],
- "id": 47,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "1289:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 54,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1289:68:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 55,
- "nodeType": "ExpressionStatement",
- "src": "1289:68:0"
- },
- {
- "id": 56,
- "nodeType": "PlaceholderStatement",
- "src": "1367:1:0"
- }
- ]
- },
- "documentation": {
- "id": 45,
- "nodeType": "StructuredDocumentation",
- "src": "1176:77:0",
- "text": " @dev Throws if called by any account other than the owner."
- },
- "id": 58,
- "name": "onlyOwner",
- "nodeType": "ModifierDefinition",
- "overrides": null,
- "parameters": {
- "id": 46,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1276:2:0"
- },
- "src": "1258:117:0",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 79,
- "nodeType": "Block",
- "src": "1771:91:0",
- "statements": [
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 65,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "1807:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 68,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1823:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 67,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1815:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 66,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1815:7:0",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 69,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1815:10:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 64,
- "name": "OwnershipTransferred",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 13,
- "src": "1786:20:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
- "typeString": "function (address,address)"
- }
- },
- "id": 70,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1786:40:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 71,
- "nodeType": "EmitStatement",
- "src": "1781:45:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 77,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 72,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "1836:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 75,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1853:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 74,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1845:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 73,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1845:7:0",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 76,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1845:10:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "1836:19:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 78,
- "nodeType": "ExpressionStatement",
- "src": "1836:19:0"
- }
- ]
- },
- "documentation": {
- "id": 59,
- "nodeType": "StructuredDocumentation",
- "src": "1381:331:0",
- "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."
- },
- "functionSelector": "715018a6",
- "id": 80,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 62,
- "modifierName": {
- "argumentTypes": null,
- "id": 61,
- "name": "onlyOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 58,
- "src": "1761:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "1761:9:0"
- }
- ],
- "name": "renounceOwnership",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 60,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1743:2:0"
- },
- "returnParameters": {
- "id": 63,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1771:0:0"
- },
- "scope": 109,
- "src": "1717:145:0",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- {
- "body": {
- "id": 107,
- "nodeType": "Block",
- "src": "2081:170:0",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 94,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 89,
- "name": "newOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 83,
- "src": "2099:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 92,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2119:1:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 91,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2111:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 90,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2111:7:0",
- "typeDescriptions": {
- "typeIdentifier": null,
- "typeString": null
- }
- }
- },
- "id": 93,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2111:10:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "2099:22:0",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373",
- "id": 95,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2123:40:0",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
- "typeString": "literal_string \"Ownable: new owner is the zero address\""
- },
- "value": "Ownable: new owner is the zero address"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
- "typeString": "literal_string \"Ownable: new owner is the zero address\""
- }
- ],
- "id": 88,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "2091:7:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 96,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2091:73:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 97,
- "nodeType": "ExpressionStatement",
- "src": "2091:73:0"
- },
- {
- "eventCall": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "id": 99,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "2200:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "argumentTypes": null,
- "id": 100,
- "name": "newOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 83,
- "src": "2208:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 98,
- "name": "OwnershipTransferred",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 13,
- "src": "2179:20:0",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
- "typeString": "function (address,address)"
- }
- },
- "id": 101,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2179:38:0",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 102,
- "nodeType": "EmitStatement",
- "src": "2174:43:0"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 105,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "argumentTypes": null,
- "id": 103,
- "name": "_owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 7,
- "src": "2227:6:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "argumentTypes": null,
- "id": 104,
- "name": "newOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 83,
- "src": "2236:8:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "2227:17:0",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 106,
- "nodeType": "ExpressionStatement",
- "src": "2227:17:0"
- }
- ]
- },
- "documentation": {
- "id": 81,
- "nodeType": "StructuredDocumentation",
- "src": "1868:138:0",
- "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."
- },
- "functionSelector": "f2fde38b",
- "id": 108,
- "implemented": true,
- "kind": "function",
- "modifiers": [
- {
- "arguments": null,
- "id": 86,
- "modifierName": {
- "argumentTypes": null,
- "id": 85,
- "name": "onlyOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 58,
- "src": "2071:9:0",
- "typeDescriptions": {
- "typeIdentifier": "t_modifier$__$",
- "typeString": "modifier ()"
- }
- },
- "nodeType": "ModifierInvocation",
- "src": "2071:9:0"
- }
- ],
- "name": "transferOwnership",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 84,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 83,
- "mutability": "mutable",
- "name": "newOwner",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 108,
- "src": "2038:16:0",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 82,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2038:7:0",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2037:18:0"
- },
- "returnParameters": {
- "id": 87,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "2081:0:0"
- },
- "scope": 109,
- "src": "2011:240:0",
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- }
- ],
- "scope": 110,
- "src": "592:1661:0"
- }
- ],
- "src": "33:2221:0"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "exportedSymbols": {
- "Ownable": [
- 109
- ]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 1,
- "name": "PragmaDirective",
- "src": "33:31:0"
- },
- {
- "attributes": {
- "SourceUnit": 566,
- "absolutePath": "openzeppelin-solidity/contracts/utils/Context.sol",
- "file": "../utils/Context.sol",
- "scope": 110,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 2,
- "name": "ImportDirective",
- "src": "66:30:0"
- },
- {
- "attributes": {
- "abstract": true,
- "contractDependencies": [
- 565
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 109,
- 565
- ],
- "name": "Ownable",
- "scope": 110
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n By default, the owner account will be the one that deploys the contract. This\n can later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner."
- },
- "id": 3,
- "name": "StructuredDocumentation",
- "src": "97:494:0"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "contractScope": null,
- "name": "Context",
- "referencedDeclaration": 565,
- "type": "contract Context"
- },
- "id": 4,
- "name": "UserDefinedTypeName",
- "src": "621:7:0"
- }
- ],
- "id": 5,
- "name": "InheritanceSpecifier",
- "src": "621:7:0"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_owner",
- "overrides": null,
- "scope": 109,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "private"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 6,
- "name": "ElementaryTypeName",
- "src": "635:7:0"
- }
- ],
- "id": 7,
- "name": "VariableDeclaration",
- "src": "635:22:0"
- },
- {
- "attributes": {
- "anonymous": false,
- "documentation": null,
- "name": "OwnershipTransferred"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "previousOwner",
- "overrides": null,
- "scope": 13,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 8,
- "name": "ElementaryTypeName",
- "src": "691:7:0"
- }
- ],
- "id": 9,
- "name": "VariableDeclaration",
- "src": "691:29:0"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "newOwner",
- "overrides": null,
- "scope": 13,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 10,
- "name": "ElementaryTypeName",
- "src": "722:7:0"
- }
- ],
- "id": 11,
- "name": "VariableDeclaration",
- "src": "722:24:0"
- }
- ],
- "id": 12,
- "name": "ParameterList",
- "src": "690:57:0"
- }
- ],
- "id": 13,
- "name": "EventDefinition",
- "src": "664:84:0"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [
- null
- ],
- "name": "",
- "overrides": null,
- "scope": 109,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Initializes the contract setting the deployer as the initial owner."
- },
- "id": 14,
- "name": "StructuredDocumentation",
- "src": "754:91:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 15,
- "name": "ParameterList",
- "src": "862:2:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 16,
- "name": "ParameterList",
- "src": "874:0:0"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [
- 18
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "msgSender",
- "overrides": null,
- "scope": 34,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 17,
- "name": "ElementaryTypeName",
- "src": "884:7:0"
- }
- ],
- "id": 18,
- "name": "VariableDeclaration",
- "src": "884:17:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [
- null
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- null
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 553,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 19,
- "name": "Identifier",
- "src": "904:10:0"
- }
- ],
- "id": 20,
- "name": "FunctionCall",
- "src": "904:12:0"
- }
- ],
- "id": 21,
- "name": "VariableDeclarationStatement",
- "src": "884:32:0"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 22,
- "name": "Identifier",
- "src": "926:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 18,
- "type": "address",
- "value": "msgSender"
- },
- "id": 23,
- "name": "Identifier",
- "src": "935:9:0"
- }
- ],
- "id": 24,
- "name": "Assignment",
- "src": "926:18:0"
- }
- ],
- "id": 25,
- "name": "ExpressionStatement",
- "src": "926:18:0"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 13,
- "type": "function (address,address)",
- "value": "OwnershipTransferred"
- },
- "id": 26,
- "name": "Identifier",
- "src": "959:20:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 27,
- "name": "ElementaryTypeName",
- "src": "980:7:0"
- }
- ],
- "id": 28,
- "name": "ElementaryTypeNameExpression",
- "src": "980:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 29,
- "name": "Literal",
- "src": "988:1:0"
- }
- ],
- "id": 30,
- "name": "FunctionCall",
- "src": "980:10:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 18,
- "type": "address",
- "value": "msgSender"
- },
- "id": 31,
- "name": "Identifier",
- "src": "992:9:0"
- }
- ],
- "id": 32,
- "name": "FunctionCall",
- "src": "959:43:0"
- }
- ],
- "id": 33,
- "name": "EmitStatement",
- "src": "954:48:0"
- }
- ],
- "id": 34,
- "name": "Block",
- "src": "874:135:0"
- }
- ],
- "id": 35,
- "name": "FunctionDefinition",
- "src": "850:159:0"
- },
- {
- "attributes": {
- "functionSelector": "8da5cb5b",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "owner",
- "overrides": null,
- "scope": 109,
- "stateMutability": "view",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the address of the current owner."
- },
- "id": 36,
- "name": "StructuredDocumentation",
- "src": "1015:65:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 37,
- "name": "ParameterList",
- "src": "1099:2:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 44,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 38,
- "name": "ElementaryTypeName",
- "src": "1131:7:0"
- }
- ],
- "id": 39,
- "name": "VariableDeclaration",
- "src": "1131:7:0"
- }
- ],
- "id": 40,
- "name": "ParameterList",
- "src": "1130:9:0"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 40
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 41,
- "name": "Identifier",
- "src": "1157:6:0"
- }
- ],
- "id": 42,
- "name": "Return",
- "src": "1150:13:0"
- }
- ],
- "id": 43,
- "name": "Block",
- "src": "1140:30:0"
- }
- ],
- "id": 44,
- "name": "FunctionDefinition",
- "src": "1085:85:0"
- },
- {
- "attributes": {
- "name": "onlyOwner",
- "overrides": null,
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Throws if called by any account other than the owner."
- },
- "id": 45,
- "name": "StructuredDocumentation",
- "src": "1176:77:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 46,
- "name": "ParameterList",
- "src": "1276:2:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe",
- "typeString": "literal_string \"Ownable: caller is not the owner\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 47,
- "name": "Identifier",
- "src": "1289:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [
- null
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- null
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 44,
- "type": "function () view returns (address)",
- "value": "owner"
- },
- "id": 48,
- "name": "Identifier",
- "src": "1297:5:0"
- }
- ],
- "id": 49,
- "name": "FunctionCall",
- "src": "1297:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "arguments": [
- null
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- null
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 553,
- "type": "function () view returns (address payable)",
- "value": "_msgSender"
- },
- "id": 50,
- "name": "Identifier",
- "src": "1308:10:0"
- }
- ],
- "id": 51,
- "name": "FunctionCall",
- "src": "1308:12:0"
- }
- ],
- "id": 52,
- "name": "BinaryOperation",
- "src": "1297:23:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Ownable: caller is not the owner\"",
- "value": "Ownable: caller is not the owner"
- },
- "id": 53,
- "name": "Literal",
- "src": "1322:34:0"
- }
- ],
- "id": 54,
- "name": "FunctionCall",
- "src": "1289:68:0"
- }
- ],
- "id": 55,
- "name": "ExpressionStatement",
- "src": "1289:68:0"
- },
- {
- "id": 56,
- "name": "PlaceholderStatement",
- "src": "1367:1:0"
- }
- ],
- "id": 57,
- "name": "Block",
- "src": "1279:96:0"
- }
- ],
- "id": 58,
- "name": "ModifierDefinition",
- "src": "1258:117:0"
- },
- {
- "attributes": {
- "functionSelector": "715018a6",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "renounceOwnership",
- "overrides": null,
- "scope": 109,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions anymore. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby removing any functionality that is only available to the owner."
- },
- "id": 59,
- "name": "StructuredDocumentation",
- "src": "1381:331:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 60,
- "name": "ParameterList",
- "src": "1743:2:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 63,
- "name": "ParameterList",
- "src": "1771:0:0"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 58,
- "type": "modifier ()",
- "value": "onlyOwner"
- },
- "id": 61,
- "name": "Identifier",
- "src": "1761:9:0"
- }
- ],
- "id": 62,
- "name": "ModifierInvocation",
- "src": "1761:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 13,
- "type": "function (address,address)",
- "value": "OwnershipTransferred"
- },
- "id": 64,
- "name": "Identifier",
- "src": "1786:20:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 65,
- "name": "Identifier",
- "src": "1807:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 66,
- "name": "ElementaryTypeName",
- "src": "1815:7:0"
- }
- ],
- "id": 67,
- "name": "ElementaryTypeNameExpression",
- "src": "1815:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 68,
- "name": "Literal",
- "src": "1823:1:0"
- }
- ],
- "id": 69,
- "name": "FunctionCall",
- "src": "1815:10:0"
- }
- ],
- "id": 70,
- "name": "FunctionCall",
- "src": "1786:40:0"
- }
- ],
- "id": 71,
- "name": "EmitStatement",
- "src": "1781:45:0"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 72,
- "name": "Identifier",
- "src": "1836:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 73,
- "name": "ElementaryTypeName",
- "src": "1845:7:0"
- }
- ],
- "id": 74,
- "name": "ElementaryTypeNameExpression",
- "src": "1845:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 75,
- "name": "Literal",
- "src": "1853:1:0"
- }
- ],
- "id": 76,
- "name": "FunctionCall",
- "src": "1845:10:0"
- }
- ],
- "id": 77,
- "name": "Assignment",
- "src": "1836:19:0"
- }
- ],
- "id": 78,
- "name": "ExpressionStatement",
- "src": "1836:19:0"
- }
- ],
- "id": 79,
- "name": "Block",
- "src": "1771:91:0"
- }
- ],
- "id": 80,
- "name": "FunctionDefinition",
- "src": "1717:145:0"
- },
- {
- "attributes": {
- "functionSelector": "f2fde38b",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "name": "transferOwnership",
- "overrides": null,
- "scope": 109,
- "stateMutability": "nonpayable",
- "virtual": true,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner."
- },
- "id": 81,
- "name": "StructuredDocumentation",
- "src": "1868:138:0"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "newOwner",
- "overrides": null,
- "scope": 108,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 82,
- "name": "ElementaryTypeName",
- "src": "2038:7:0"
- }
- ],
- "id": 83,
- "name": "VariableDeclaration",
- "src": "2038:16:0"
- }
- ],
- "id": 84,
- "name": "ParameterList",
- "src": "2037:18:0"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 87,
- "name": "ParameterList",
- "src": "2081:0:0"
- },
- {
- "attributes": {
- "arguments": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 58,
- "type": "modifier ()",
- "value": "onlyOwner"
- },
- "id": 85,
- "name": "Identifier",
- "src": "2071:9:0"
- }
- ],
- "id": 86,
- "name": "ModifierInvocation",
- "src": "2071:9:0"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe",
- "typeString": "literal_string \"Ownable: new owner is the zero address\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 88,
- "name": "Identifier",
- "src": "2091:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 83,
- "type": "address",
- "value": "newOwner"
- },
- "id": 89,
- "name": "Identifier",
- "src": "2099:8:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "type": null
- },
- "id": 90,
- "name": "ElementaryTypeName",
- "src": "2111:7:0"
- }
- ],
- "id": 91,
- "name": "ElementaryTypeNameExpression",
- "src": "2111:7:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 92,
- "name": "Literal",
- "src": "2119:1:0"
- }
- ],
- "id": 93,
- "name": "FunctionCall",
- "src": "2111:10:0"
- }
- ],
- "id": 94,
- "name": "BinaryOperation",
- "src": "2099:22:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"Ownable: new owner is the zero address\"",
- "value": "Ownable: new owner is the zero address"
- },
- "id": 95,
- "name": "Literal",
- "src": "2123:40:0"
- }
- ],
- "id": 96,
- "name": "FunctionCall",
- "src": "2091:73:0"
- }
- ],
- "id": 97,
- "name": "ExpressionStatement",
- "src": "2091:73:0"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 13,
- "type": "function (address,address)",
- "value": "OwnershipTransferred"
- },
- "id": 98,
- "name": "Identifier",
- "src": "2179:20:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 99,
- "name": "Identifier",
- "src": "2200:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 83,
- "type": "address",
- "value": "newOwner"
- },
- "id": 100,
- "name": "Identifier",
- "src": "2208:8:0"
- }
- ],
- "id": 101,
- "name": "FunctionCall",
- "src": "2179:38:0"
- }
- ],
- "id": 102,
- "name": "EmitStatement",
- "src": "2174:43:0"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 7,
- "type": "address",
- "value": "_owner"
- },
- "id": 103,
- "name": "Identifier",
- "src": "2227:6:0"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 83,
- "type": "address",
- "value": "newOwner"
- },
- "id": 104,
- "name": "Identifier",
- "src": "2236:8:0"
- }
- ],
- "id": 105,
- "name": "Assignment",
- "src": "2227:17:0"
- }
- ],
- "id": 106,
- "name": "ExpressionStatement",
- "src": "2227:17:0"
- }
- ],
- "id": 107,
- "name": "Block",
- "src": "2081:170:0"
- }
- ],
- "id": 108,
- "name": "FunctionDefinition",
- "src": "2011:240:0"
- }
- ],
- "id": 109,
- "name": "ContractDefinition",
- "src": "592:1661:0"
- }
- ],
- "id": 110,
- "name": "SourceUnit",
- "src": "33:2221:0"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.4.3",
- "updatedAt": "2021-10-13T15:44:47.621Z",
- "devdoc": {
- "details": "Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. By default, the owner account will be the one that deploys the contract. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.",
- "methods": {
- "constructor": {
- "details": "Initializes the contract setting the deployer as the initial owner."
- },
- "owner()": {
- "details": "Returns the address of the current owner."
- },
- "renounceOwnership()": {
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
- },
- "transferOwnership(address)": {
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
- }
- }
- },
- "userdoc": {
- "methods": {}
- }
-}
\ No newline at end of file
diff --git a/build/contracts/OwnershipManager.json b/build/contracts/OwnershipManager.json
deleted file mode 100644
index cec733517..000000000
--- a/build/contracts/OwnershipManager.json
+++ /dev/null
@@ -1,336 +0,0 @@
-{
- "contractName": "OwnershipManager",
- "abi": [
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function"
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/OwnershipManager.sol\":\"OwnershipManager\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"openzeppelin-solidity/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"project:/contracts/OwnershipManager.sol\":{\"keccak256\":\"0x570d800b1b8776b23b77d321fdab6039bf6de5fc3a6de0bb50219a377628d938\",\"urls\":[\"bzz-raw://2cf952585eb410131dc12194b0b1d723e58460e21771b467cf194625944893b9\",\"dweb:/ipfs/QmSn4qPACeesyUfmX62PRxPybT9BpDkfZYZURRes9Tk3W7\"]}},\"version\":1}",
- "bytecode": "0x608060405234801561001057600080fd5b5060006100216100c460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100cc565b600033905090565b6104b4806100db6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063715018a6146100465780638da5cb5b14610050578063f2fde38b14610084575b600080fd5b61004e6100c8565b005b610058610235565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c66004803603602081101561009a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061025e565b005b6100d0610450565b73ffffffffffffffffffffffffffffffffffffffff166100ee610235565b73ffffffffffffffffffffffffffffffffffffffff1614610177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610266610450565b73ffffffffffffffffffffffffffffffffffffffff16610284610235565b73ffffffffffffffffffffffffffffffffffffffff161461030d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806104596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220141485366582a37247111ce5b44ad760103bfb49b7dce80602b04f6fd51dade664736f6c63430007060033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c8063715018a6146100465780638da5cb5b14610050578063f2fde38b14610084575b600080fd5b61004e6100c8565b005b610058610235565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6100c66004803603602081101561009a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061025e565b005b6100d0610450565b73ffffffffffffffffffffffffffffffffffffffff166100ee610235565b73ffffffffffffffffffffffffffffffffffffffff1614610177576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610266610450565b73ffffffffffffffffffffffffffffffffffffffff16610284610235565b73ffffffffffffffffffffffffffffffffffffffff161461030d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806104596026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60003390509056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373a2646970667358221220141485366582a37247111ce5b44ad760103bfb49b7dce80602b04f6fd51dade664736f6c63430007060033",
- "immutableReferences": {},
- "generatedSources": [],
- "deployedGeneratedSources": [],
- "sourceMap": "220:41:8:-:0;;;;;;;;;;;;;884:17:0;904:12;:10;;;:12;;:::i;:::-;884:32;;935:9;926:6;;:18;;;;;;;;;;;;;;;;;;992:9;959:43;;988:1;959:43;;;;;;;;;;;;850:159;220:41:8;;598:104:6;651:15;685:10;678:17;;598:104;:::o;220:41:8:-;;;;;;;",
- "deployedSourceMap": "220:41:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1717:145:0;;;:::i;:::-;;1085:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2011:240;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1717:145;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1786:40;;1807:6;::::0;::::1;;;;;;;;1786:40;;;;;;;;;;;;1853:1;1836:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1717:145::o:0;1085:85::-;1131:7;1157:6;;;;;;;;;;;1150:13;;1085:85;:::o;2011:240::-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:1:::1;2099:22;;:8;:22;;;;2091:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:8;2179:38;;2200:6;::::0;::::1;;;;;;;;2179:38;;;;;;;;;;;;2236:8;2227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2011:240:::0;:::o;598:104:6:-;651:15;685:10;678:17;;598:104;:::o",
- "source": "pragma solidity >=0.6.0 <0.8.0;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/access/Ownable.sol\";\n\ncontract OwnershipManager is Ownable {\n\n}",
- "sourcePath": "/Users/miloskotlar/dkg-onchain-module-v6/contracts/OwnershipManager.sol",
- "ast": {
- "absolutePath": "project:/contracts/OwnershipManager.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "IERC20": [
- 676
- ],
- "Ownable": [
- 109
- ],
- "OwnershipManager": [
- 1147
- ],
- "SafeMath": [
- 476
- ]
- },
- "id": 1148,
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 1141,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "0:31:8"
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "id": 1142,
- "nodeType": "ImportDirective",
- "scope": 1148,
- "sourceUnit": 677,
- "src": "33:64:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "id": 1143,
- "nodeType": "ImportDirective",
- "scope": 1148,
- "sourceUnit": 477,
- "src": "98:59:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "id": 1144,
- "nodeType": "ImportDirective",
- "scope": 1148,
- "sourceUnit": 110,
- "src": "158:60:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "baseName": {
- "id": 1145,
- "name": "Ownable",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 109,
- "src": "249:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Ownable_$109",
- "typeString": "contract Ownable"
- }
- },
- "id": 1146,
- "nodeType": "InheritanceSpecifier",
- "src": "249:7:8"
- }
- ],
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "id": 1147,
- "linearizedBaseContracts": [
- 1147,
- 109,
- 815
- ],
- "name": "OwnershipManager",
- "nodeType": "ContractDefinition",
- "nodes": [],
- "scope": 1148,
- "src": "220:41:8"
- }
- ],
- "src": "0:261:8"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "project:/contracts/OwnershipManager.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "IERC20": [
- 676
- ],
- "Ownable": [
- 109
- ],
- "OwnershipManager": [
- 1147
- ],
- "SafeMath": [
- 476
- ]
- }
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 1141,
- "name": "PragmaDirective",
- "src": "0:31:8"
- },
- {
- "attributes": {
- "SourceUnit": 677,
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "scope": 1148,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1142,
- "name": "ImportDirective",
- "src": "33:64:8"
- },
- {
- "attributes": {
- "SourceUnit": 477,
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "scope": 1148,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1143,
- "name": "ImportDirective",
- "src": "98:59:8"
- },
- {
- "attributes": {
- "SourceUnit": 110,
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "scope": 1148,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1144,
- "name": "ImportDirective",
- "src": "158:60:8"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 1147,
- 109,
- 815
- ],
- "name": "OwnershipManager",
- "nodes": [
- null
- ],
- "scope": 1148
- },
- "children": [
- {
- "attributes": {},
- "children": [
- {
- "attributes": {
- "name": "Ownable",
- "referencedDeclaration": 109,
- "type": "contract Ownable"
- },
- "id": 1145,
- "name": "UserDefinedTypeName",
- "src": "249:7:8"
- }
- ],
- "id": 1146,
- "name": "InheritanceSpecifier",
- "src": "249:7:8"
- }
- ],
- "id": 1147,
- "name": "ContractDefinition",
- "src": "220:41:8"
- }
- ],
- "id": 1148,
- "name": "SourceUnit",
- "src": "0:261:8"
- },
- "compiler": {
- "name": "solc",
- "version": "0.7.6+commit.7338295f.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.4.3",
- "updatedAt": "2022-02-10T14:48:30.729Z",
- "devdoc": {
- "kind": "dev",
- "methods": {
- "owner()": {
- "details": "Returns the address of the current owner."
- },
- "renounceOwnership()": {
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
- },
- "transferOwnership(address)": {
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
\ No newline at end of file
diff --git a/build/contracts/SafeMath.json b/build/contracts/SafeMath.json
deleted file mode 100644
index 0759b42a0..000000000
--- a/build/contracts/SafeMath.json
+++ /dev/null
@@ -1,9664 +0,0 @@
-{
- "contractName": "SafeMath",
- "abi": [],
- "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]}},\"version\":1}",
- "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203bea2451538dba86d92c562c970d3c7a874f8a6abc680e1150328f85e28f03f564736f6c634300060a0033",
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203bea2451538dba86d92c562c970d3c7a874f8a6abc680e1150328f85e28f03f564736f6c634300060a0033",
- "immutableReferences": {},
- "sourceMap": "630:6594:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;",
- "deployedSourceMap": "630:6594:1:-:0;;;;;;;;",
- "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n",
- "sourcePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "ast": {
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "exportedSymbols": {
- "SafeMath": [
- 464
- ]
- },
- "id": 465,
- "license": "MIT",
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 111,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "33:31:1"
- },
- {
- "abstract": false,
- "baseContracts": [],
- "contractDependencies": [],
- "contractKind": "library",
- "documentation": {
- "id": 112,
- "nodeType": "StructuredDocumentation",
- "src": "66:563:1",
- "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."
- },
- "fullyImplemented": true,
- "id": 464,
- "linearizedBaseContracts": [
- 464
- ],
- "name": "SafeMath",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "body": {
- "id": 142,
- "nodeType": "Block",
- "src": "865:98:1",
- "statements": [
- {
- "assignments": [
- 125
- ],
- "declarations": [
- {
- "constant": false,
- "id": 125,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 142,
- "src": "875:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 124,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "875:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 129,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 128,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 126,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 115,
- "src": "887:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 127,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 117,
- "src": "891:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "887:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "875:17:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 132,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 130,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 125,
- "src": "906:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "argumentTypes": null,
- "id": 131,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 115,
- "src": "910:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "906:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 137,
- "nodeType": "IfStatement",
- "src": "902:28:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 133,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "921:5:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 134,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "928:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 135,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "920:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 123,
- "id": 136,
- "nodeType": "Return",
- "src": "913:17:1"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 138,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "948:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "id": 139,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 125,
- "src": "954:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 140,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "947:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 123,
- "id": 141,
- "nodeType": "Return",
- "src": "940:16:1"
- }
- ]
- },
- "documentation": {
- "id": 113,
- "nodeType": "StructuredDocumentation",
- "src": "653:131:1",
- "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 143,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryAdd",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 118,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 115,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 143,
- "src": "805:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 114,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "805:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 117,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 143,
- "src": "816:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 116,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "816:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "804:22:1"
- },
- "returnParameters": {
- "id": 123,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 120,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 143,
- "src": "850:4:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 119,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "850:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 122,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 143,
- "src": "856:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 121,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "856:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "849:15:1"
- },
- "scope": 464,
- "src": "789:174:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 169,
- "nodeType": "Block",
- "src": "1185:75:1",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 157,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 155,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 148,
- "src": "1199:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "id": 156,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 146,
- "src": "1203:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1199:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 162,
- "nodeType": "IfStatement",
- "src": "1195:28:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 158,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1214:5:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 159,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1221:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 160,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1213:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 154,
- "id": 161,
- "nodeType": "Return",
- "src": "1206:17:1"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 163,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1241:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 166,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 164,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 146,
- "src": "1247:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 165,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 148,
- "src": "1251:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1247:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 167,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1240:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 154,
- "id": 168,
- "nodeType": "Return",
- "src": "1233:20:1"
- }
- ]
- },
- "documentation": {
- "id": 144,
- "nodeType": "StructuredDocumentation",
- "src": "969:135:1",
- "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 170,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "trySub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 149,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 146,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 170,
- "src": "1125:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 145,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1125:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 148,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 170,
- "src": "1136:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 147,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1136:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1124:22:1"
- },
- "returnParameters": {
- "id": 154,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 151,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 170,
- "src": "1170:4:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 150,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1170:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 153,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 170,
- "src": "1176:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 152,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1176:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1169:15:1"
- },
- "scope": 464,
- "src": "1109:151:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 210,
- "nodeType": "Block",
- "src": "1484:359:1",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 184,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 182,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 173,
- "src": "1716:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 183,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1721:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "1716:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 189,
- "nodeType": "IfStatement",
- "src": "1712:28:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 185,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1732:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 186,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1738:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 187,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1731:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 181,
- "id": 188,
- "nodeType": "Return",
- "src": "1724:16:1"
- }
- },
- {
- "assignments": [
- 191
- ],
- "declarations": [
- {
- "constant": false,
- "id": 191,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 210,
- "src": "1750:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 190,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1750:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 195,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 194,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 192,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 173,
- "src": "1762:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 193,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 175,
- "src": "1766:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1762:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "1750:17:1"
- },
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 200,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 198,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 196,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 191,
- "src": "1781:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 197,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 173,
- "src": "1785:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1781:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 199,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 175,
- "src": "1790:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "1781:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 205,
- "nodeType": "IfStatement",
- "src": "1777:33:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 201,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1801:5:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 202,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1808:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 203,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1800:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 181,
- "id": 204,
- "nodeType": "Return",
- "src": "1793:17:1"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 206,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1828:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "id": 207,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 191,
- "src": "1834:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 208,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "1827:9:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 181,
- "id": 209,
- "nodeType": "Return",
- "src": "1820:16:1"
- }
- ]
- },
- "documentation": {
- "id": 171,
- "nodeType": "StructuredDocumentation",
- "src": "1266:137:1",
- "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 211,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryMul",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 176,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 173,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 211,
- "src": "1424:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 172,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1424:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 175,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 211,
- "src": "1435:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 174,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1435:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1423:22:1"
- },
- "returnParameters": {
- "id": 181,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 178,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 211,
- "src": "1469:4:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 177,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1469:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 180,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 211,
- "src": "1475:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 179,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1475:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "1468:15:1"
- },
- "scope": 464,
- "src": "1408:435:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 237,
- "nodeType": "Block",
- "src": "2068:76:1",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 225,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 223,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 216,
- "src": "2082:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 224,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2087:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2082:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 230,
- "nodeType": "IfStatement",
- "src": "2078:29:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 226,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2098:5:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 227,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2105:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 228,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2097:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 222,
- "id": 229,
- "nodeType": "Return",
- "src": "2090:17:1"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 231,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2125:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 234,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 232,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 214,
- "src": "2131:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 233,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 216,
- "src": "2135:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2131:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 235,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2124:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 222,
- "id": 236,
- "nodeType": "Return",
- "src": "2117:20:1"
- }
- ]
- },
- "documentation": {
- "id": 212,
- "nodeType": "StructuredDocumentation",
- "src": "1849:138:1",
- "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 238,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryDiv",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 217,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 214,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 238,
- "src": "2008:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 213,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2008:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 216,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 238,
- "src": "2019:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 215,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2019:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2007:22:1"
- },
- "returnParameters": {
- "id": 222,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 219,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 238,
- "src": "2053:4:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 218,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2053:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 221,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 238,
- "src": "2059:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 220,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2059:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2052:15:1"
- },
- "scope": 464,
- "src": "1992:152:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 264,
- "nodeType": "Block",
- "src": "2379:76:1",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 252,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 250,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 243,
- "src": "2393:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 251,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2398:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2393:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 257,
- "nodeType": "IfStatement",
- "src": "2389:29:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "66616c7365",
- "id": 253,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2409:5:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 254,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2416:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "id": 255,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2408:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$",
- "typeString": "tuple(bool,int_const 0)"
- }
- },
- "functionReturnParameters": 249,
- "id": 256,
- "nodeType": "Return",
- "src": "2401:17:1"
- }
- },
- {
- "expression": {
- "argumentTypes": null,
- "components": [
- {
- "argumentTypes": null,
- "hexValue": "74727565",
- "id": 258,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2436:4:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 261,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 259,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 241,
- "src": "2442:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 260,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 243,
- "src": "2446:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2442:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "id": 262,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "TupleExpression",
- "src": "2435:13:1",
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$",
- "typeString": "tuple(bool,uint256)"
- }
- },
- "functionReturnParameters": 249,
- "id": 263,
- "nodeType": "Return",
- "src": "2428:20:1"
- }
- ]
- },
- "documentation": {
- "id": 239,
- "nodeType": "StructuredDocumentation",
- "src": "2150:148:1",
- "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 265,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "tryMod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 244,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 241,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 265,
- "src": "2319:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 240,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2319:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 243,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 265,
- "src": "2330:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 242,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2330:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2318:22:1"
- },
- "returnParameters": {
- "id": 249,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 246,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 265,
- "src": "2364:4:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 245,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "2364:4:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 248,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 265,
- "src": "2370:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 247,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2370:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2363:15:1"
- },
- "scope": 464,
- "src": "2303:152:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 290,
- "nodeType": "Block",
- "src": "2757:108:1",
- "statements": [
- {
- "assignments": [
- 276
- ],
- "declarations": [
- {
- "constant": false,
- "id": 276,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 290,
- "src": "2767:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 275,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2767:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 280,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 279,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 277,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 268,
- "src": "2779:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "+",
- "rightExpression": {
- "argumentTypes": null,
- "id": 278,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 270,
- "src": "2783:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2779:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "2767:17:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 284,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 282,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 276,
- "src": "2802:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 283,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 268,
- "src": "2807:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2802:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
- "id": 285,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2810:29:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- },
- "value": "SafeMath: addition overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- }
- ],
- "id": 281,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "2794:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 286,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2794:46:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 287,
- "nodeType": "ExpressionStatement",
- "src": "2794:46:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 288,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 276,
- "src": "2857:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 274,
- "id": 289,
- "nodeType": "Return",
- "src": "2850:8:1"
- }
- ]
- },
- "documentation": {
- "id": 266,
- "nodeType": "StructuredDocumentation",
- "src": "2461:224:1",
- "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."
- },
- "id": 291,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "add",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 271,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 268,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 291,
- "src": "2703:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 267,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2703:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 270,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 291,
- "src": "2714:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 269,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2714:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2702:22:1"
- },
- "returnParameters": {
- "id": 274,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 273,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 291,
- "src": "2748:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 272,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2748:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "2747:9:1"
- },
- "scope": 464,
- "src": "2690:175:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 312,
- "nodeType": "Block",
- "src": "3203:88:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 304,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 302,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 296,
- "src": "3221:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 303,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 294,
- "src": "3226:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3221:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77",
- "id": 305,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3229:32:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- },
- "value": "SafeMath: subtraction overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- }
- ],
- "id": 301,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "3213:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 306,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3213:49:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 307,
- "nodeType": "ExpressionStatement",
- "src": "3213:49:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 310,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 308,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 294,
- "src": "3279:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 309,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 296,
- "src": "3283:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3279:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 300,
- "id": 311,
- "nodeType": "Return",
- "src": "3272:12:1"
- }
- ]
- },
- "documentation": {
- "id": 292,
- "nodeType": "StructuredDocumentation",
- "src": "2871:260:1",
- "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 313,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "sub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 297,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 294,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 313,
- "src": "3149:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 293,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3149:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 296,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 313,
- "src": "3160:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 295,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3160:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3148:22:1"
- },
- "returnParameters": {
- "id": 300,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 299,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 313,
- "src": "3194:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 298,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3194:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3193:9:1"
- },
- "scope": 464,
- "src": "3136:155:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 346,
- "nodeType": "Block",
- "src": "3605:148:1",
- "statements": [
- {
- "condition": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 325,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 323,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 316,
- "src": "3619:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 324,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3624:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "3619:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "falseBody": null,
- "id": 328,
- "nodeType": "IfStatement",
- "src": "3615:20:1",
- "trueBody": {
- "expression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 326,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3634:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "functionReturnParameters": 322,
- "id": 327,
- "nodeType": "Return",
- "src": "3627:8:1"
- }
- },
- {
- "assignments": [
- 330
- ],
- "declarations": [
- {
- "constant": false,
- "id": 330,
- "mutability": "mutable",
- "name": "c",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 346,
- "src": "3645:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 329,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3645:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "id": 334,
- "initialValue": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 333,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 331,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 316,
- "src": "3657:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "*",
- "rightExpression": {
- "argumentTypes": null,
- "id": 332,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 318,
- "src": "3661:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3657:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "3645:17:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 340,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 338,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 336,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 330,
- "src": "3680:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 337,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 316,
- "src": "3684:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3680:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "argumentTypes": null,
- "id": 339,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 318,
- "src": "3689:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "3680:10:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
- "id": 341,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3692:35:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- },
- "value": "SafeMath: multiplication overflow"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- }
- ],
- "id": 335,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "3672:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 342,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3672:56:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 343,
- "nodeType": "ExpressionStatement",
- "src": "3672:56:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "id": 344,
- "name": "c",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 330,
- "src": "3745:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 322,
- "id": 345,
- "nodeType": "Return",
- "src": "3738:8:1"
- }
- ]
- },
- "documentation": {
- "id": 314,
- "nodeType": "StructuredDocumentation",
- "src": "3297:236:1",
- "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."
- },
- "id": 347,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mul",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 319,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 316,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 347,
- "src": "3551:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 315,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3551:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 318,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 347,
- "src": "3562:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 317,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3562:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3550:22:1"
- },
- "returnParameters": {
- "id": 322,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 321,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 347,
- "src": "3596:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 320,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "3596:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "3595:9:1"
- },
- "scope": 464,
- "src": "3538:215:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 368,
- "nodeType": "Block",
- "src": "4284:83:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 360,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 358,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 352,
- "src": "4302:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 359,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4306:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4302:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f",
- "id": 361,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4309:28:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- },
- "value": "SafeMath: division by zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- }
- ],
- "id": 357,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "4294:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 362,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4294:44:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 363,
- "nodeType": "ExpressionStatement",
- "src": "4294:44:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 366,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 364,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 350,
- "src": "4355:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 365,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 352,
- "src": "4359:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4355:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 356,
- "id": 367,
- "nodeType": "Return",
- "src": "4348:12:1"
- }
- ]
- },
- "documentation": {
- "id": 348,
- "nodeType": "StructuredDocumentation",
- "src": "3759:453:1",
- "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 369,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "div",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 353,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 350,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 369,
- "src": "4230:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 349,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4230:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 352,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 369,
- "src": "4241:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 351,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4241:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4229:22:1"
- },
- "returnParameters": {
- "id": 356,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 355,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 369,
- "src": "4275:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 354,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4275:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4274:9:1"
- },
- "scope": 464,
- "src": "4217:150:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 390,
- "nodeType": "Block",
- "src": "4887:81:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 382,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 380,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 374,
- "src": "4905:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 381,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4909:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4905:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f",
- "id": 383,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4912:26:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- },
- "value": "SafeMath: modulo by zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- }
- ],
- "id": 379,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "4897:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 384,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4897:42:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 385,
- "nodeType": "ExpressionStatement",
- "src": "4897:42:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 388,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 386,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 372,
- "src": "4956:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 387,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 374,
- "src": "4960:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4956:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 378,
- "id": 389,
- "nodeType": "Return",
- "src": "4949:12:1"
- }
- ]
- },
- "documentation": {
- "id": 370,
- "nodeType": "StructuredDocumentation",
- "src": "4373:442:1",
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 391,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 375,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 372,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 391,
- "src": "4833:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 371,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4833:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 374,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 391,
- "src": "4844:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 373,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4844:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4832:22:1"
- },
- "returnParameters": {
- "id": 378,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 377,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 391,
- "src": "4878:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 376,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4878:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "4877:9:1"
- },
- "scope": 464,
- "src": "4820:148:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 414,
- "nodeType": "Block",
- "src": "5527:68:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 406,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 404,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 396,
- "src": "5545:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<=",
- "rightExpression": {
- "argumentTypes": null,
- "id": 405,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 394,
- "src": "5550:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5545:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 407,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 398,
- "src": "5553:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 403,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "5537:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 408,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5537:29:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 409,
- "nodeType": "ExpressionStatement",
- "src": "5537:29:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 412,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 410,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 394,
- "src": "5583:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "-",
- "rightExpression": {
- "argumentTypes": null,
- "id": 411,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 396,
- "src": "5587:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5583:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 402,
- "id": 413,
- "nodeType": "Return",
- "src": "5576:12:1"
- }
- ]
- },
- "documentation": {
- "id": 392,
- "nodeType": "StructuredDocumentation",
- "src": "4974:453:1",
- "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 415,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "sub",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 399,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 394,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 415,
- "src": "5445:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 393,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5445:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 396,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 415,
- "src": "5456:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 395,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5456:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 398,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 415,
- "src": "5467:26:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 397,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "5467:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5444:50:1"
- },
- "returnParameters": {
- "id": 402,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 401,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 415,
- "src": "5518:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 400,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "5518:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "5517:9:1"
- },
- "scope": 464,
- "src": "5432:163:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 438,
- "nodeType": "Block",
- "src": "6347:67:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 430,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 428,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "6365:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 429,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "6369:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "6365:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 431,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 422,
- "src": "6372:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 427,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "6357:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 432,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "6357:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 433,
- "nodeType": "ExpressionStatement",
- "src": "6357:28:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 436,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 434,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 418,
- "src": "6402:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "/",
- "rightExpression": {
- "argumentTypes": null,
- "id": 435,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 420,
- "src": "6406:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "6402:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 426,
- "id": 437,
- "nodeType": "Return",
- "src": "6395:12:1"
- }
- ]
- },
- "documentation": {
- "id": 416,
- "nodeType": "StructuredDocumentation",
- "src": "5601:646:1",
- "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 439,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "div",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 423,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 418,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 439,
- "src": "6265:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 417,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6265:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 420,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 439,
- "src": "6276:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 419,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6276:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 422,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 439,
- "src": "6287:26:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 421,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "6287:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6264:50:1"
- },
- "returnParameters": {
- "id": 426,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 425,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 439,
- "src": "6338:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 424,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "6338:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "6337:9:1"
- },
- "scope": 464,
- "src": "6252:162:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 462,
- "nodeType": "Block",
- "src": "7155:67:1",
- "statements": [
- {
- "expression": {
- "argumentTypes": null,
- "arguments": [
- {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 454,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 452,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 444,
- "src": "7173:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "argumentTypes": null,
- "hexValue": "30",
- "id": 453,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "7177:1:1",
- "subdenomination": null,
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "7173:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "argumentTypes": null,
- "id": 455,
- "name": "errorMessage",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 446,
- "src": "7180:12:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "id": 451,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "src": "7165:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 456,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "7165:28:1",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 457,
- "nodeType": "ExpressionStatement",
- "src": "7165:28:1"
- },
- {
- "expression": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 460,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "argumentTypes": null,
- "id": 458,
- "name": "a",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 442,
- "src": "7210:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "%",
- "rightExpression": {
- "argumentTypes": null,
- "id": 459,
- "name": "b",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 444,
- "src": "7214:1:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "7210:5:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 450,
- "id": 461,
- "nodeType": "Return",
- "src": "7203:12:1"
- }
- ]
- },
- "documentation": {
- "id": 440,
- "nodeType": "StructuredDocumentation",
- "src": "6420:635:1",
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 463,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "mod",
- "nodeType": "FunctionDefinition",
- "overrides": null,
- "parameters": {
- "id": 447,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 442,
- "mutability": "mutable",
- "name": "a",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 463,
- "src": "7073:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 441,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7073:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 444,
- "mutability": "mutable",
- "name": "b",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 463,
- "src": "7084:9:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 443,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7084:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 446,
- "mutability": "mutable",
- "name": "errorMessage",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 463,
- "src": "7095:26:1",
- "stateVariable": false,
- "storageLocation": "memory",
- "typeDescriptions": {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string"
- },
- "typeName": {
- "id": 445,
- "name": "string",
- "nodeType": "ElementaryTypeName",
- "src": "7095:6:1",
- "typeDescriptions": {
- "typeIdentifier": "t_string_storage_ptr",
- "typeString": "string"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7072:50:1"
- },
- "returnParameters": {
- "id": 450,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 449,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "overrides": null,
- "scope": 463,
- "src": "7146:7:1",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 448,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "7146:7:1",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "value": null,
- "visibility": "internal"
- }
- ],
- "src": "7145:9:1"
- },
- "scope": 464,
- "src": "7060:162:1",
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- }
- ],
- "scope": 465,
- "src": "630:6594:1"
- }
- ],
- "src": "33:7192:1"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "exportedSymbols": {
- "SafeMath": [
- 464
- ]
- },
- "license": "MIT"
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 111,
- "name": "PragmaDirective",
- "src": "33:31:1"
- },
- {
- "attributes": {
- "abstract": false,
- "baseContracts": [
- null
- ],
- "contractDependencies": [
- null
- ],
- "contractKind": "library",
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 464
- ],
- "name": "SafeMath",
- "scope": 465
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always."
- },
- "id": 112,
- "name": "StructuredDocumentation",
- "src": "66:563:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "tryAdd",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 113,
- "name": "StructuredDocumentation",
- "src": "653:131:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 143,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 114,
- "name": "ElementaryTypeName",
- "src": "805:7:1"
- }
- ],
- "id": 115,
- "name": "VariableDeclaration",
- "src": "805:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 143,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 116,
- "name": "ElementaryTypeName",
- "src": "816:7:1"
- }
- ],
- "id": 117,
- "name": "VariableDeclaration",
- "src": "816:9:1"
- }
- ],
- "id": 118,
- "name": "ParameterList",
- "src": "804:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 143,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 119,
- "name": "ElementaryTypeName",
- "src": "850:4:1"
- }
- ],
- "id": 120,
- "name": "VariableDeclaration",
- "src": "850:4:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 143,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 121,
- "name": "ElementaryTypeName",
- "src": "856:7:1"
- }
- ],
- "id": 122,
- "name": "VariableDeclaration",
- "src": "856:7:1"
- }
- ],
- "id": 123,
- "name": "ParameterList",
- "src": "849:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [
- 125
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 142,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 124,
- "name": "ElementaryTypeName",
- "src": "875:7:1"
- }
- ],
- "id": 125,
- "name": "VariableDeclaration",
- "src": "875:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 115,
- "type": "uint256",
- "value": "a"
- },
- "id": 126,
- "name": "Identifier",
- "src": "887:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 117,
- "type": "uint256",
- "value": "b"
- },
- "id": 127,
- "name": "Identifier",
- "src": "891:1:1"
- }
- ],
- "id": 128,
- "name": "BinaryOperation",
- "src": "887:5:1"
- }
- ],
- "id": 129,
- "name": "VariableDeclarationStatement",
- "src": "875:17:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 125,
- "type": "uint256",
- "value": "c"
- },
- "id": 130,
- "name": "Identifier",
- "src": "906:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 115,
- "type": "uint256",
- "value": "a"
- },
- "id": 131,
- "name": "Identifier",
- "src": "910:1:1"
- }
- ],
- "id": 132,
- "name": "BinaryOperation",
- "src": "906:5:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 123
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 133,
- "name": "Literal",
- "src": "921:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 134,
- "name": "Literal",
- "src": "928:1:1"
- }
- ],
- "id": 135,
- "name": "TupleExpression",
- "src": "920:10:1"
- }
- ],
- "id": 136,
- "name": "Return",
- "src": "913:17:1"
- }
- ],
- "id": 137,
- "name": "IfStatement",
- "src": "902:28:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 123
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 138,
- "name": "Literal",
- "src": "948:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 125,
- "type": "uint256",
- "value": "c"
- },
- "id": 139,
- "name": "Identifier",
- "src": "954:1:1"
- }
- ],
- "id": 140,
- "name": "TupleExpression",
- "src": "947:9:1"
- }
- ],
- "id": 141,
- "name": "Return",
- "src": "940:16:1"
- }
- ],
- "id": 142,
- "name": "Block",
- "src": "865:98:1"
- }
- ],
- "id": 143,
- "name": "FunctionDefinition",
- "src": "789:174:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "trySub",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 144,
- "name": "StructuredDocumentation",
- "src": "969:135:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 170,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 145,
- "name": "ElementaryTypeName",
- "src": "1125:7:1"
- }
- ],
- "id": 146,
- "name": "VariableDeclaration",
- "src": "1125:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 170,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 147,
- "name": "ElementaryTypeName",
- "src": "1136:7:1"
- }
- ],
- "id": 148,
- "name": "VariableDeclaration",
- "src": "1136:9:1"
- }
- ],
- "id": 149,
- "name": "ParameterList",
- "src": "1124:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 170,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 150,
- "name": "ElementaryTypeName",
- "src": "1170:4:1"
- }
- ],
- "id": 151,
- "name": "VariableDeclaration",
- "src": "1170:4:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 170,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 152,
- "name": "ElementaryTypeName",
- "src": "1176:7:1"
- }
- ],
- "id": 153,
- "name": "VariableDeclaration",
- "src": "1176:7:1"
- }
- ],
- "id": 154,
- "name": "ParameterList",
- "src": "1169:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 148,
- "type": "uint256",
- "value": "b"
- },
- "id": 155,
- "name": "Identifier",
- "src": "1199:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 146,
- "type": "uint256",
- "value": "a"
- },
- "id": 156,
- "name": "Identifier",
- "src": "1203:1:1"
- }
- ],
- "id": 157,
- "name": "BinaryOperation",
- "src": "1199:5:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 154
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 158,
- "name": "Literal",
- "src": "1214:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 159,
- "name": "Literal",
- "src": "1221:1:1"
- }
- ],
- "id": 160,
- "name": "TupleExpression",
- "src": "1213:10:1"
- }
- ],
- "id": 161,
- "name": "Return",
- "src": "1206:17:1"
- }
- ],
- "id": 162,
- "name": "IfStatement",
- "src": "1195:28:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 154
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 163,
- "name": "Literal",
- "src": "1241:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 146,
- "type": "uint256",
- "value": "a"
- },
- "id": 164,
- "name": "Identifier",
- "src": "1247:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 148,
- "type": "uint256",
- "value": "b"
- },
- "id": 165,
- "name": "Identifier",
- "src": "1251:1:1"
- }
- ],
- "id": 166,
- "name": "BinaryOperation",
- "src": "1247:5:1"
- }
- ],
- "id": 167,
- "name": "TupleExpression",
- "src": "1240:13:1"
- }
- ],
- "id": 168,
- "name": "Return",
- "src": "1233:20:1"
- }
- ],
- "id": 169,
- "name": "Block",
- "src": "1185:75:1"
- }
- ],
- "id": 170,
- "name": "FunctionDefinition",
- "src": "1109:151:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "tryMul",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._"
- },
- "id": 171,
- "name": "StructuredDocumentation",
- "src": "1266:137:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 172,
- "name": "ElementaryTypeName",
- "src": "1424:7:1"
- }
- ],
- "id": 173,
- "name": "VariableDeclaration",
- "src": "1424:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 174,
- "name": "ElementaryTypeName",
- "src": "1435:7:1"
- }
- ],
- "id": 175,
- "name": "VariableDeclaration",
- "src": "1435:9:1"
- }
- ],
- "id": 176,
- "name": "ParameterList",
- "src": "1423:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 177,
- "name": "ElementaryTypeName",
- "src": "1469:4:1"
- }
- ],
- "id": 178,
- "name": "VariableDeclaration",
- "src": "1469:4:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 211,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 179,
- "name": "ElementaryTypeName",
- "src": "1475:7:1"
- }
- ],
- "id": 180,
- "name": "VariableDeclaration",
- "src": "1475:7:1"
- }
- ],
- "id": 181,
- "name": "ParameterList",
- "src": "1468:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 173,
- "type": "uint256",
- "value": "a"
- },
- "id": 182,
- "name": "Identifier",
- "src": "1716:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 183,
- "name": "Literal",
- "src": "1721:1:1"
- }
- ],
- "id": 184,
- "name": "BinaryOperation",
- "src": "1716:6:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 181
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 185,
- "name": "Literal",
- "src": "1732:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 186,
- "name": "Literal",
- "src": "1738:1:1"
- }
- ],
- "id": 187,
- "name": "TupleExpression",
- "src": "1731:9:1"
- }
- ],
- "id": 188,
- "name": "Return",
- "src": "1724:16:1"
- }
- ],
- "id": 189,
- "name": "IfStatement",
- "src": "1712:28:1"
- },
- {
- "attributes": {
- "assignments": [
- 191
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 210,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 190,
- "name": "ElementaryTypeName",
- "src": "1750:7:1"
- }
- ],
- "id": 191,
- "name": "VariableDeclaration",
- "src": "1750:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 173,
- "type": "uint256",
- "value": "a"
- },
- "id": 192,
- "name": "Identifier",
- "src": "1762:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 175,
- "type": "uint256",
- "value": "b"
- },
- "id": 193,
- "name": "Identifier",
- "src": "1766:1:1"
- }
- ],
- "id": 194,
- "name": "BinaryOperation",
- "src": "1762:5:1"
- }
- ],
- "id": 195,
- "name": "VariableDeclarationStatement",
- "src": "1750:17:1"
- },
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 191,
- "type": "uint256",
- "value": "c"
- },
- "id": 196,
- "name": "Identifier",
- "src": "1781:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 173,
- "type": "uint256",
- "value": "a"
- },
- "id": 197,
- "name": "Identifier",
- "src": "1785:1:1"
- }
- ],
- "id": 198,
- "name": "BinaryOperation",
- "src": "1781:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 175,
- "type": "uint256",
- "value": "b"
- },
- "id": 199,
- "name": "Identifier",
- "src": "1790:1:1"
- }
- ],
- "id": 200,
- "name": "BinaryOperation",
- "src": "1781:10:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 181
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 201,
- "name": "Literal",
- "src": "1801:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 202,
- "name": "Literal",
- "src": "1808:1:1"
- }
- ],
- "id": 203,
- "name": "TupleExpression",
- "src": "1800:10:1"
- }
- ],
- "id": 204,
- "name": "Return",
- "src": "1793:17:1"
- }
- ],
- "id": 205,
- "name": "IfStatement",
- "src": "1777:33:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 181
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 206,
- "name": "Literal",
- "src": "1828:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 191,
- "type": "uint256",
- "value": "c"
- },
- "id": 207,
- "name": "Identifier",
- "src": "1834:1:1"
- }
- ],
- "id": 208,
- "name": "TupleExpression",
- "src": "1827:9:1"
- }
- ],
- "id": 209,
- "name": "Return",
- "src": "1820:16:1"
- }
- ],
- "id": 210,
- "name": "Block",
- "src": "1484:359:1"
- }
- ],
- "id": 211,
- "name": "FunctionDefinition",
- "src": "1408:435:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "tryDiv",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 212,
- "name": "StructuredDocumentation",
- "src": "1849:138:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 238,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 213,
- "name": "ElementaryTypeName",
- "src": "2008:7:1"
- }
- ],
- "id": 214,
- "name": "VariableDeclaration",
- "src": "2008:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 238,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 215,
- "name": "ElementaryTypeName",
- "src": "2019:7:1"
- }
- ],
- "id": 216,
- "name": "VariableDeclaration",
- "src": "2019:9:1"
- }
- ],
- "id": 217,
- "name": "ParameterList",
- "src": "2007:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 238,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 218,
- "name": "ElementaryTypeName",
- "src": "2053:4:1"
- }
- ],
- "id": 219,
- "name": "VariableDeclaration",
- "src": "2053:4:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 238,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 220,
- "name": "ElementaryTypeName",
- "src": "2059:7:1"
- }
- ],
- "id": 221,
- "name": "VariableDeclaration",
- "src": "2059:7:1"
- }
- ],
- "id": 222,
- "name": "ParameterList",
- "src": "2052:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 216,
- "type": "uint256",
- "value": "b"
- },
- "id": 223,
- "name": "Identifier",
- "src": "2082:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 224,
- "name": "Literal",
- "src": "2087:1:1"
- }
- ],
- "id": 225,
- "name": "BinaryOperation",
- "src": "2082:6:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 222
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 226,
- "name": "Literal",
- "src": "2098:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 227,
- "name": "Literal",
- "src": "2105:1:1"
- }
- ],
- "id": 228,
- "name": "TupleExpression",
- "src": "2097:10:1"
- }
- ],
- "id": 229,
- "name": "Return",
- "src": "2090:17:1"
- }
- ],
- "id": 230,
- "name": "IfStatement",
- "src": "2078:29:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 222
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 231,
- "name": "Literal",
- "src": "2125:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 214,
- "type": "uint256",
- "value": "a"
- },
- "id": 232,
- "name": "Identifier",
- "src": "2131:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 216,
- "type": "uint256",
- "value": "b"
- },
- "id": 233,
- "name": "Identifier",
- "src": "2135:1:1"
- }
- ],
- "id": 234,
- "name": "BinaryOperation",
- "src": "2131:5:1"
- }
- ],
- "id": 235,
- "name": "TupleExpression",
- "src": "2124:13:1"
- }
- ],
- "id": 236,
- "name": "Return",
- "src": "2117:20:1"
- }
- ],
- "id": 237,
- "name": "Block",
- "src": "2068:76:1"
- }
- ],
- "id": 238,
- "name": "FunctionDefinition",
- "src": "1992:152:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "tryMod",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._"
- },
- "id": 239,
- "name": "StructuredDocumentation",
- "src": "2150:148:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 265,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 240,
- "name": "ElementaryTypeName",
- "src": "2319:7:1"
- }
- ],
- "id": 241,
- "name": "VariableDeclaration",
- "src": "2319:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 265,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 242,
- "name": "ElementaryTypeName",
- "src": "2330:7:1"
- }
- ],
- "id": 243,
- "name": "VariableDeclaration",
- "src": "2330:9:1"
- }
- ],
- "id": 244,
- "name": "ParameterList",
- "src": "2318:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 265,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 245,
- "name": "ElementaryTypeName",
- "src": "2364:4:1"
- }
- ],
- "id": 246,
- "name": "VariableDeclaration",
- "src": "2364:4:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 265,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 247,
- "name": "ElementaryTypeName",
- "src": "2370:7:1"
- }
- ],
- "id": 248,
- "name": "VariableDeclaration",
- "src": "2370:7:1"
- }
- ],
- "id": 249,
- "name": "ParameterList",
- "src": "2363:15:1"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 243,
- "type": "uint256",
- "value": "b"
- },
- "id": 250,
- "name": "Identifier",
- "src": "2393:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 251,
- "name": "Literal",
- "src": "2398:1:1"
- }
- ],
- "id": 252,
- "name": "BinaryOperation",
- "src": "2393:6:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 249
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "tuple(bool,int_const 0)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 253,
- "name": "Literal",
- "src": "2409:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 254,
- "name": "Literal",
- "src": "2416:1:1"
- }
- ],
- "id": 255,
- "name": "TupleExpression",
- "src": "2408:10:1"
- }
- ],
- "id": 256,
- "name": "Return",
- "src": "2401:17:1"
- }
- ],
- "id": 257,
- "name": "IfStatement",
- "src": "2389:29:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 249
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isInlineArray": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "type": "tuple(bool,uint256)"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 258,
- "name": "Literal",
- "src": "2436:4:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 241,
- "type": "uint256",
- "value": "a"
- },
- "id": 259,
- "name": "Identifier",
- "src": "2442:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 243,
- "type": "uint256",
- "value": "b"
- },
- "id": 260,
- "name": "Identifier",
- "src": "2446:1:1"
- }
- ],
- "id": 261,
- "name": "BinaryOperation",
- "src": "2442:5:1"
- }
- ],
- "id": 262,
- "name": "TupleExpression",
- "src": "2435:13:1"
- }
- ],
- "id": 263,
- "name": "Return",
- "src": "2428:20:1"
- }
- ],
- "id": 264,
- "name": "Block",
- "src": "2379:76:1"
- }
- ],
- "id": 265,
- "name": "FunctionDefinition",
- "src": "2303:152:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "add",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow."
- },
- "id": 266,
- "name": "StructuredDocumentation",
- "src": "2461:224:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 291,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 267,
- "name": "ElementaryTypeName",
- "src": "2703:7:1"
- }
- ],
- "id": 268,
- "name": "VariableDeclaration",
- "src": "2703:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 291,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 269,
- "name": "ElementaryTypeName",
- "src": "2714:7:1"
- }
- ],
- "id": 270,
- "name": "VariableDeclaration",
- "src": "2714:9:1"
- }
- ],
- "id": 271,
- "name": "ParameterList",
- "src": "2702:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 291,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 272,
- "name": "ElementaryTypeName",
- "src": "2748:7:1"
- }
- ],
- "id": 273,
- "name": "VariableDeclaration",
- "src": "2748:7:1"
- }
- ],
- "id": 274,
- "name": "ParameterList",
- "src": "2747:9:1"
- },
- {
- "children": [
- {
- "attributes": {
- "assignments": [
- 276
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 290,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 275,
- "name": "ElementaryTypeName",
- "src": "2767:7:1"
- }
- ],
- "id": 276,
- "name": "VariableDeclaration",
- "src": "2767:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "+",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 268,
- "type": "uint256",
- "value": "a"
- },
- "id": 277,
- "name": "Identifier",
- "src": "2779:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 270,
- "type": "uint256",
- "value": "b"
- },
- "id": 278,
- "name": "Identifier",
- "src": "2783:1:1"
- }
- ],
- "id": 279,
- "name": "BinaryOperation",
- "src": "2779:5:1"
- }
- ],
- "id": 280,
- "name": "VariableDeclarationStatement",
- "src": "2767:17:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a",
- "typeString": "literal_string \"SafeMath: addition overflow\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 281,
- "name": "Identifier",
- "src": "2794:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 276,
- "type": "uint256",
- "value": "c"
- },
- "id": 282,
- "name": "Identifier",
- "src": "2802:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 268,
- "type": "uint256",
- "value": "a"
- },
- "id": 283,
- "name": "Identifier",
- "src": "2807:1:1"
- }
- ],
- "id": 284,
- "name": "BinaryOperation",
- "src": "2802:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: addition overflow\"",
- "value": "SafeMath: addition overflow"
- },
- "id": 285,
- "name": "Literal",
- "src": "2810:29:1"
- }
- ],
- "id": 286,
- "name": "FunctionCall",
- "src": "2794:46:1"
- }
- ],
- "id": 287,
- "name": "ExpressionStatement",
- "src": "2794:46:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 274
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 276,
- "type": "uint256",
- "value": "c"
- },
- "id": 288,
- "name": "Identifier",
- "src": "2857:1:1"
- }
- ],
- "id": 289,
- "name": "Return",
- "src": "2850:8:1"
- }
- ],
- "id": 290,
- "name": "Block",
- "src": "2757:108:1"
- }
- ],
- "id": 291,
- "name": "FunctionDefinition",
- "src": "2690:175:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "sub",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 292,
- "name": "StructuredDocumentation",
- "src": "2871:260:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 293,
- "name": "ElementaryTypeName",
- "src": "3149:7:1"
- }
- ],
- "id": 294,
- "name": "VariableDeclaration",
- "src": "3149:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 295,
- "name": "ElementaryTypeName",
- "src": "3160:7:1"
- }
- ],
- "id": 296,
- "name": "VariableDeclaration",
- "src": "3160:9:1"
- }
- ],
- "id": 297,
- "name": "ParameterList",
- "src": "3148:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 313,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 298,
- "name": "ElementaryTypeName",
- "src": "3194:7:1"
- }
- ],
- "id": 299,
- "name": "VariableDeclaration",
- "src": "3194:7:1"
- }
- ],
- "id": 300,
- "name": "ParameterList",
- "src": "3193:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862",
- "typeString": "literal_string \"SafeMath: subtraction overflow\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 301,
- "name": "Identifier",
- "src": "3213:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 296,
- "type": "uint256",
- "value": "b"
- },
- "id": 302,
- "name": "Identifier",
- "src": "3221:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 294,
- "type": "uint256",
- "value": "a"
- },
- "id": 303,
- "name": "Identifier",
- "src": "3226:1:1"
- }
- ],
- "id": 304,
- "name": "BinaryOperation",
- "src": "3221:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: subtraction overflow\"",
- "value": "SafeMath: subtraction overflow"
- },
- "id": 305,
- "name": "Literal",
- "src": "3229:32:1"
- }
- ],
- "id": 306,
- "name": "FunctionCall",
- "src": "3213:49:1"
- }
- ],
- "id": 307,
- "name": "ExpressionStatement",
- "src": "3213:49:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 300
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 294,
- "type": "uint256",
- "value": "a"
- },
- "id": 308,
- "name": "Identifier",
- "src": "3279:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 296,
- "type": "uint256",
- "value": "b"
- },
- "id": 309,
- "name": "Identifier",
- "src": "3283:1:1"
- }
- ],
- "id": 310,
- "name": "BinaryOperation",
- "src": "3279:5:1"
- }
- ],
- "id": 311,
- "name": "Return",
- "src": "3272:12:1"
- }
- ],
- "id": 312,
- "name": "Block",
- "src": "3203:88:1"
- }
- ],
- "id": 313,
- "name": "FunctionDefinition",
- "src": "3136:155:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "mul",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow."
- },
- "id": 314,
- "name": "StructuredDocumentation",
- "src": "3297:236:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 347,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 315,
- "name": "ElementaryTypeName",
- "src": "3551:7:1"
- }
- ],
- "id": 316,
- "name": "VariableDeclaration",
- "src": "3551:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 347,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 317,
- "name": "ElementaryTypeName",
- "src": "3562:7:1"
- }
- ],
- "id": 318,
- "name": "VariableDeclaration",
- "src": "3562:9:1"
- }
- ],
- "id": 319,
- "name": "ParameterList",
- "src": "3550:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 347,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 320,
- "name": "ElementaryTypeName",
- "src": "3596:7:1"
- }
- ],
- "id": 321,
- "name": "VariableDeclaration",
- "src": "3596:7:1"
- }
- ],
- "id": 322,
- "name": "ParameterList",
- "src": "3595:9:1"
- },
- {
- "children": [
- {
- "attributes": {
- "falseBody": null
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 316,
- "type": "uint256",
- "value": "a"
- },
- "id": 323,
- "name": "Identifier",
- "src": "3619:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 324,
- "name": "Literal",
- "src": "3624:1:1"
- }
- ],
- "id": 325,
- "name": "BinaryOperation",
- "src": "3619:6:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 322
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 326,
- "name": "Literal",
- "src": "3634:1:1"
- }
- ],
- "id": 327,
- "name": "Return",
- "src": "3627:8:1"
- }
- ],
- "id": 328,
- "name": "IfStatement",
- "src": "3615:20:1"
- },
- {
- "attributes": {
- "assignments": [
- 330
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "c",
- "overrides": null,
- "scope": 346,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 329,
- "name": "ElementaryTypeName",
- "src": "3645:7:1"
- }
- ],
- "id": 330,
- "name": "VariableDeclaration",
- "src": "3645:9:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "*",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 316,
- "type": "uint256",
- "value": "a"
- },
- "id": 331,
- "name": "Identifier",
- "src": "3657:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 318,
- "type": "uint256",
- "value": "b"
- },
- "id": 332,
- "name": "Identifier",
- "src": "3661:1:1"
- }
- ],
- "id": 333,
- "name": "BinaryOperation",
- "src": "3657:5:1"
- }
- ],
- "id": 334,
- "name": "VariableDeclarationStatement",
- "src": "3645:17:1"
- },
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3",
- "typeString": "literal_string \"SafeMath: multiplication overflow\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 335,
- "name": "Identifier",
- "src": "3672:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 330,
- "type": "uint256",
- "value": "c"
- },
- "id": 336,
- "name": "Identifier",
- "src": "3680:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 316,
- "type": "uint256",
- "value": "a"
- },
- "id": 337,
- "name": "Identifier",
- "src": "3684:1:1"
- }
- ],
- "id": 338,
- "name": "BinaryOperation",
- "src": "3680:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 318,
- "type": "uint256",
- "value": "b"
- },
- "id": 339,
- "name": "Identifier",
- "src": "3689:1:1"
- }
- ],
- "id": 340,
- "name": "BinaryOperation",
- "src": "3680:10:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: multiplication overflow\"",
- "value": "SafeMath: multiplication overflow"
- },
- "id": 341,
- "name": "Literal",
- "src": "3692:35:1"
- }
- ],
- "id": 342,
- "name": "FunctionCall",
- "src": "3672:56:1"
- }
- ],
- "id": 343,
- "name": "ExpressionStatement",
- "src": "3672:56:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 322
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 330,
- "type": "uint256",
- "value": "c"
- },
- "id": 344,
- "name": "Identifier",
- "src": "3745:1:1"
- }
- ],
- "id": 345,
- "name": "Return",
- "src": "3738:8:1"
- }
- ],
- "id": 346,
- "name": "Block",
- "src": "3605:148:1"
- }
- ],
- "id": 347,
- "name": "FunctionDefinition",
- "src": "3538:215:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "div",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 348,
- "name": "StructuredDocumentation",
- "src": "3759:453:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 369,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 349,
- "name": "ElementaryTypeName",
- "src": "4230:7:1"
- }
- ],
- "id": 350,
- "name": "VariableDeclaration",
- "src": "4230:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 369,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 351,
- "name": "ElementaryTypeName",
- "src": "4241:7:1"
- }
- ],
- "id": 352,
- "name": "VariableDeclaration",
- "src": "4241:9:1"
- }
- ],
- "id": 353,
- "name": "ParameterList",
- "src": "4229:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 369,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 354,
- "name": "ElementaryTypeName",
- "src": "4275:7:1"
- }
- ],
- "id": 355,
- "name": "VariableDeclaration",
- "src": "4275:7:1"
- }
- ],
- "id": 356,
- "name": "ParameterList",
- "src": "4274:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f",
- "typeString": "literal_string \"SafeMath: division by zero\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 357,
- "name": "Identifier",
- "src": "4294:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 352,
- "type": "uint256",
- "value": "b"
- },
- "id": 358,
- "name": "Identifier",
- "src": "4302:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 359,
- "name": "Literal",
- "src": "4306:1:1"
- }
- ],
- "id": 360,
- "name": "BinaryOperation",
- "src": "4302:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: division by zero\"",
- "value": "SafeMath: division by zero"
- },
- "id": 361,
- "name": "Literal",
- "src": "4309:28:1"
- }
- ],
- "id": 362,
- "name": "FunctionCall",
- "src": "4294:44:1"
- }
- ],
- "id": 363,
- "name": "ExpressionStatement",
- "src": "4294:44:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 356
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 350,
- "type": "uint256",
- "value": "a"
- },
- "id": 364,
- "name": "Identifier",
- "src": "4355:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 352,
- "type": "uint256",
- "value": "b"
- },
- "id": 365,
- "name": "Identifier",
- "src": "4359:1:1"
- }
- ],
- "id": 366,
- "name": "BinaryOperation",
- "src": "4355:5:1"
- }
- ],
- "id": 367,
- "name": "Return",
- "src": "4348:12:1"
- }
- ],
- "id": 368,
- "name": "Block",
- "src": "4284:83:1"
- }
- ],
- "id": 369,
- "name": "FunctionDefinition",
- "src": "4217:150:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "mod",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 370,
- "name": "StructuredDocumentation",
- "src": "4373:442:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 391,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 371,
- "name": "ElementaryTypeName",
- "src": "4833:7:1"
- }
- ],
- "id": 372,
- "name": "VariableDeclaration",
- "src": "4833:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 391,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 373,
- "name": "ElementaryTypeName",
- "src": "4844:7:1"
- }
- ],
- "id": 374,
- "name": "VariableDeclaration",
- "src": "4844:9:1"
- }
- ],
- "id": 375,
- "name": "ParameterList",
- "src": "4832:22:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 391,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 376,
- "name": "ElementaryTypeName",
- "src": "4878:7:1"
- }
- ],
- "id": 377,
- "name": "VariableDeclaration",
- "src": "4878:7:1"
- }
- ],
- "id": 378,
- "name": "ParameterList",
- "src": "4877:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832",
- "typeString": "literal_string \"SafeMath: modulo by zero\""
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 379,
- "name": "Identifier",
- "src": "4897:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 374,
- "type": "uint256",
- "value": "b"
- },
- "id": 380,
- "name": "Identifier",
- "src": "4905:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 381,
- "name": "Literal",
- "src": "4909:1:1"
- }
- ],
- "id": 382,
- "name": "BinaryOperation",
- "src": "4905:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "string",
- "type": "literal_string \"SafeMath: modulo by zero\"",
- "value": "SafeMath: modulo by zero"
- },
- "id": 383,
- "name": "Literal",
- "src": "4912:26:1"
- }
- ],
- "id": 384,
- "name": "FunctionCall",
- "src": "4897:42:1"
- }
- ],
- "id": 385,
- "name": "ExpressionStatement",
- "src": "4897:42:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 378
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 372,
- "type": "uint256",
- "value": "a"
- },
- "id": 386,
- "name": "Identifier",
- "src": "4956:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 374,
- "type": "uint256",
- "value": "b"
- },
- "id": 387,
- "name": "Identifier",
- "src": "4960:1:1"
- }
- ],
- "id": 388,
- "name": "BinaryOperation",
- "src": "4956:5:1"
- }
- ],
- "id": 389,
- "name": "Return",
- "src": "4949:12:1"
- }
- ],
- "id": 390,
- "name": "Block",
- "src": "4887:81:1"
- }
- ],
- "id": 391,
- "name": "FunctionDefinition",
- "src": "4820:148:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "sub",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow."
- },
- "id": 392,
- "name": "StructuredDocumentation",
- "src": "4974:453:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 415,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 393,
- "name": "ElementaryTypeName",
- "src": "5445:7:1"
- }
- ],
- "id": 394,
- "name": "VariableDeclaration",
- "src": "5445:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 415,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 395,
- "name": "ElementaryTypeName",
- "src": "5456:7:1"
- }
- ],
- "id": 396,
- "name": "VariableDeclaration",
- "src": "5456:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 415,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 397,
- "name": "ElementaryTypeName",
- "src": "5467:6:1"
- }
- ],
- "id": 398,
- "name": "VariableDeclaration",
- "src": "5467:26:1"
- }
- ],
- "id": 399,
- "name": "ParameterList",
- "src": "5444:50:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 415,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 400,
- "name": "ElementaryTypeName",
- "src": "5518:7:1"
- }
- ],
- "id": 401,
- "name": "VariableDeclaration",
- "src": "5518:7:1"
- }
- ],
- "id": 402,
- "name": "ParameterList",
- "src": "5517:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 403,
- "name": "Identifier",
- "src": "5537:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 396,
- "type": "uint256",
- "value": "b"
- },
- "id": 404,
- "name": "Identifier",
- "src": "5545:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 394,
- "type": "uint256",
- "value": "a"
- },
- "id": 405,
- "name": "Identifier",
- "src": "5550:1:1"
- }
- ],
- "id": 406,
- "name": "BinaryOperation",
- "src": "5545:6:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 398,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 407,
- "name": "Identifier",
- "src": "5553:12:1"
- }
- ],
- "id": 408,
- "name": "FunctionCall",
- "src": "5537:29:1"
- }
- ],
- "id": 409,
- "name": "ExpressionStatement",
- "src": "5537:29:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 402
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "-",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 394,
- "type": "uint256",
- "value": "a"
- },
- "id": 410,
- "name": "Identifier",
- "src": "5583:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 396,
- "type": "uint256",
- "value": "b"
- },
- "id": 411,
- "name": "Identifier",
- "src": "5587:1:1"
- }
- ],
- "id": 412,
- "name": "BinaryOperation",
- "src": "5583:5:1"
- }
- ],
- "id": 413,
- "name": "Return",
- "src": "5576:12:1"
- }
- ],
- "id": 414,
- "name": "Block",
- "src": "5527:68:1"
- }
- ],
- "id": 415,
- "name": "FunctionDefinition",
- "src": "5432:163:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "div",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 416,
- "name": "StructuredDocumentation",
- "src": "5601:646:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 439,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 417,
- "name": "ElementaryTypeName",
- "src": "6265:7:1"
- }
- ],
- "id": 418,
- "name": "VariableDeclaration",
- "src": "6265:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 439,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 419,
- "name": "ElementaryTypeName",
- "src": "6276:7:1"
- }
- ],
- "id": 420,
- "name": "VariableDeclaration",
- "src": "6276:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 439,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 421,
- "name": "ElementaryTypeName",
- "src": "6287:6:1"
- }
- ],
- "id": 422,
- "name": "VariableDeclaration",
- "src": "6287:26:1"
- }
- ],
- "id": 423,
- "name": "ParameterList",
- "src": "6264:50:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 439,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 424,
- "name": "ElementaryTypeName",
- "src": "6338:7:1"
- }
- ],
- "id": 425,
- "name": "VariableDeclaration",
- "src": "6338:7:1"
- }
- ],
- "id": 426,
- "name": "ParameterList",
- "src": "6337:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 427,
- "name": "Identifier",
- "src": "6357:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 420,
- "type": "uint256",
- "value": "b"
- },
- "id": 428,
- "name": "Identifier",
- "src": "6365:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 429,
- "name": "Literal",
- "src": "6369:1:1"
- }
- ],
- "id": 430,
- "name": "BinaryOperation",
- "src": "6365:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 422,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 431,
- "name": "Identifier",
- "src": "6372:12:1"
- }
- ],
- "id": 432,
- "name": "FunctionCall",
- "src": "6357:28:1"
- }
- ],
- "id": 433,
- "name": "ExpressionStatement",
- "src": "6357:28:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 426
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "/",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 418,
- "type": "uint256",
- "value": "a"
- },
- "id": 434,
- "name": "Identifier",
- "src": "6402:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 420,
- "type": "uint256",
- "value": "b"
- },
- "id": 435,
- "name": "Identifier",
- "src": "6406:1:1"
- }
- ],
- "id": 436,
- "name": "BinaryOperation",
- "src": "6402:5:1"
- }
- ],
- "id": 437,
- "name": "Return",
- "src": "6395:12:1"
- }
- ],
- "id": 438,
- "name": "Block",
- "src": "6347:67:1"
- }
- ],
- "id": 439,
- "name": "FunctionDefinition",
- "src": "6252:162:1"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "mod",
- "overrides": null,
- "scope": 464,
- "stateMutability": "pure",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero."
- },
- "id": 440,
- "name": "StructuredDocumentation",
- "src": "6420:635:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "a",
- "overrides": null,
- "scope": 463,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 441,
- "name": "ElementaryTypeName",
- "src": "7073:7:1"
- }
- ],
- "id": 442,
- "name": "VariableDeclaration",
- "src": "7073:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "b",
- "overrides": null,
- "scope": 463,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 443,
- "name": "ElementaryTypeName",
- "src": "7084:7:1"
- }
- ],
- "id": 444,
- "name": "VariableDeclaration",
- "src": "7084:9:1"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "errorMessage",
- "overrides": null,
- "scope": 463,
- "stateVariable": false,
- "storageLocation": "memory",
- "type": "string",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "string",
- "type": "string"
- },
- "id": 445,
- "name": "ElementaryTypeName",
- "src": "7095:6:1"
- }
- ],
- "id": 446,
- "name": "VariableDeclaration",
- "src": "7095:26:1"
- }
- ],
- "id": 447,
- "name": "ParameterList",
- "src": "7072:50:1"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "overrides": null,
- "scope": 463,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "value": null,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 448,
- "name": "ElementaryTypeName",
- "src": "7146:7:1"
- }
- ],
- "id": 449,
- "name": "VariableDeclaration",
- "src": "7146:7:1"
- }
- ],
- "id": 450,
- "name": "ParameterList",
- "src": "7145:9:1"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_string_memory_ptr",
- "typeString": "string memory"
- }
- ],
- "overloadedDeclarations": [
- -18,
- -18
- ],
- "referencedDeclaration": -18,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 451,
- "name": "Identifier",
- "src": "7165:7:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 444,
- "type": "uint256",
- "value": "b"
- },
- "id": 452,
- "name": "Identifier",
- "src": "7173:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "subdenomination": null,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 453,
- "name": "Literal",
- "src": "7177:1:1"
- }
- ],
- "id": 454,
- "name": "BinaryOperation",
- "src": "7173:5:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 446,
- "type": "string memory",
- "value": "errorMessage"
- },
- "id": 455,
- "name": "Identifier",
- "src": "7180:12:1"
- }
- ],
- "id": 456,
- "name": "FunctionCall",
- "src": "7165:28:1"
- }
- ],
- "id": 457,
- "name": "ExpressionStatement",
- "src": "7165:28:1"
- },
- {
- "attributes": {
- "functionReturnParameters": 450
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "%",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 442,
- "type": "uint256",
- "value": "a"
- },
- "id": 458,
- "name": "Identifier",
- "src": "7210:1:1"
- },
- {
- "attributes": {
- "argumentTypes": null,
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 444,
- "type": "uint256",
- "value": "b"
- },
- "id": 459,
- "name": "Identifier",
- "src": "7214:1:1"
- }
- ],
- "id": 460,
- "name": "BinaryOperation",
- "src": "7210:5:1"
- }
- ],
- "id": 461,
- "name": "Return",
- "src": "7203:12:1"
- }
- ],
- "id": 462,
- "name": "Block",
- "src": "7155:67:1"
- }
- ],
- "id": 463,
- "name": "FunctionDefinition",
- "src": "7060:162:1"
- }
- ],
- "id": 464,
- "name": "ContractDefinition",
- "src": "630:6594:1"
- }
- ],
- "id": 465,
- "name": "SourceUnit",
- "src": "33:7192:1"
- },
- "compiler": {
- "name": "solc",
- "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
- },
- "networks": {},
- "schemaVersion": "3.4.3",
- "updatedAt": "2021-10-13T15:44:47.623Z",
- "devdoc": {
- "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.",
- "methods": {}
- },
- "userdoc": {
- "methods": {}
- }
-}
\ No newline at end of file
diff --git a/build/contracts/UAIRegistry.json b/build/contracts/UAIRegistry.json
deleted file mode 100644
index 19077cca0..000000000
--- a/build/contracts/UAIRegistry.json
+++ /dev/null
@@ -1,13284 +0,0 @@
-{
- "contractName": "UAIRegistry",
- "abi": [
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "tokenAddress",
- "type": "address"
- },
- {
- "internalType": "address",
- "name": "assertionRegistryAddress",
- "type": "address"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "constructor"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "depositor",
- "type": "address"
- }
- ],
- "name": "TokensDepositedToAsset",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAICreated",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionRegistryAddress",
- "type": "address"
- }
- ],
- "name": "UAIRegistryInit",
- "type": "event"
- },
- {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAIUpdatedState",
- "type": "event"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "name": "UAIstatus",
- "outputs": [
- {
- "internalType": "bool",
- "name": "",
- "type": "bool"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "name": "assetRecords",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "creationTimestamp",
- "type": "uint256"
- },
- {
- "internalType": "bytes32",
- "name": "alsoKnownAs",
- "type": "bytes32"
- },
- {
- "internalType": "uint8",
- "name": "_type",
- "type": "uint8"
- },
- {
- "internalType": "address",
- "name": "controller",
- "type": "address"
- },
- {
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "name": "assetStake",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "owner",
- "outputs": [
- {
- "internalType": "address",
- "name": "",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "renounceOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "transferOwnership",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "internalType": "uint8",
- "name": "_type",
- "type": "uint8"
- },
- {
- "internalType": "bytes32",
- "name": "alsoKnownAs",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- },
- {
- "internalType": "uint256",
- "name": "tokenAmount",
- "type": "uint256"
- }
- ],
- "name": "registerAsset",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "newStateCommitHash",
- "type": "bytes32"
- },
- {
- "internalType": "bytes32",
- "name": "rootHash",
- "type": "bytes32"
- }
- ],
- "name": "updateAssetState",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "",
- "type": "bytes32"
- }
- ],
- "stateMutability": "nonpayable",
- "type": "function"
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- }
- ],
- "name": "getAssetStateCommitHash",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- }
- ],
- "name": "getAssetController",
- "outputs": [
- {
- "internalType": "address",
- "name": "controller",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- }
- ],
- "name": "getAssetAKA",
- "outputs": [
- {
- "internalType": "bytes32",
- "name": "alsoKnownAs",
- "type": "bytes32"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- }
- ],
- "name": "getAssetCreationTimestamp",
- "outputs": [
- {
- "internalType": "uint256",
- "name": "creationTimestamp",
- "type": "uint256"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [],
- "name": "getAssertionRegistry",
- "outputs": [
- {
- "internalType": "address",
- "name": "assertionRegistry",
- "type": "address"
- }
- ],
- "stateMutability": "view",
- "type": "function",
- "constant": true
- },
- {
- "inputs": [
- {
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- }
- ],
- "name": "depositTokens",
- "outputs": [],
- "stateMutability": "nonpayable",
- "type": "function"
- }
- ],
- "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assertionRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"depositor\",\"type\":\"address\"}],\"name\":\"TokensDepositedToAsset\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"stateCommitHash\",\"type\":\"bytes32\"}],\"name\":\"UAICreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"assertionRegistryAddress\",\"type\":\"address\"}],\"name\":\"UAIRegistryInit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"stateCommitHash\",\"type\":\"bytes32\"}],\"name\":\"UAIUpdatedState\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"UAIstatus\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"assetRecords\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"creationTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"alsoKnownAs\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_type\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"stateCommitHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"assetStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"}],\"name\":\"depositTokens\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAssertionRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"assertionRegistry\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"}],\"name\":\"getAssetAKA\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"alsoKnownAs\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"}],\"name\":\"getAssetController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"}],\"name\":\"getAssetCreationTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"creationTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"}],\"name\":\"getAssetStateCommitHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"stateCommitHash\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"_type\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"alsoKnownAs\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"stateCommitHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"registerAsset\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"UAI\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"newStateCommitHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"rootHash\",\"type\":\"bytes32\"}],\"name\":\"updateAssetState\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"depositTokens(uint256,bytes32)\":{\"details\":\"Deposits tokens in ``amount`` to specific ``UAI``\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/UAIRegistry.sol\":\"UAIRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/access/Ownable.sol\":{\"keccak256\":\"0x15e2d5bd4c28a88548074c54d220e8086f638a71ed07e6b3ba5a70066fcf458d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://90faf5851c02f9bd42c5bfb54d4f0421a2612f50ab80b2c4fa24fa3792071cc2\",\"dweb:/ipfs/QmRGM4F2PcGVF85aTfaA9YBhCHHDqrMhRjyp6fGeBTtirb\"]},\"openzeppelin-solidity/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0xcc78a17dd88fa5a2edc60c8489e2f405c0913b377216a5b26b35656b2d0dab52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://526dc85e1f9b9b45830e202568d267d93dde7a4fcccf4ad7798dadcd92304d3c\",\"dweb:/ipfs/QmaoXMB972J3cSDLtBq3xBo4jLwqD2uzXTwujtSPqkYVhR\"]},\"openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x61321d2c86346045bf394885ee3afeecc65f9daad2694bc19110967588fd7b5d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1703b877203e0447ede72dcf73f1c4f2089b415bd1c44877904128a64fafed5b\",\"dweb:/ipfs/QmaZoYDo2FWtKcwCc9zuabU6zri8KV9xJrhU614d93sLid\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5f02220344881ce43204ae4a6281145a67bc52c2bb1290a791857df3d19d78f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://24427744bd3e6cb73c17010119af12a318289c0253a4d9acb8576c9fb3797b08\",\"dweb:/ipfs/QmTLDqpKRBuxGxRAmjgXt9AkXyACW3MtKzi7PYjm5iMfGC\"]},\"openzeppelin-solidity/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x2d99a0deb6648c34fbc66d6ac4a2d64798d7a5321b45624f6736fadc63da1962\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2dcdce5ede1e5e650d174ec0b35be7d47b6a50f30bc895ef0d9e59fb75052e45\",\"dweb:/ipfs/QmQ2XFsDLTYqfEdw7pYzHiGtFRY11yQm4b6ynYgKqDxeB8\"]},\"openzeppelin-solidity/contracts/utils/Context.sol\":{\"keccak256\":\"0x8d3cb350f04ff49cfb10aef08d87f19dcbaecc8027b0bed12f3275cd12f38cf0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ded47ec7c96750f9bd04bbbc84f659992d4ba901cb7b532a52cd468272cf378f\",\"dweb:/ipfs/QmfBrGtQP7rZEqEg6Wz6jh2N2Kukpj1z5v3CGWmAqrzm96\"]},\"project:/contracts/DKGcontract.sol\":{\"keccak256\":\"0xea0c3c1edba3277ff8a18e50b054ab4d2e1f9434b2554270a4cccb3edb0d9ef3\",\"urls\":[\"bzz-raw://259759777c8a56dae6f5980dd9b6a27725636643e6cc54b0fd6e6f3e997176c6\",\"dweb:/ipfs/QmWzcVDUJ8ymwT6dYd15VhpyZsB9WeCs9BeomSVxr5Cer7\"]},\"project:/contracts/UAIRegistry.sol\":{\"keccak256\":\"0xc1f3db75475a1fab7aef0b5cf05e3b51cd88da6650d8c86f2c407f6c233e4c1e\",\"urls\":[\"bzz-raw://e9d01a85357bf1630109d13100a7d162e2ebd0c600db5180c83d8d3bb2428ab8\",\"dweb:/ipfs/QmZh1YAkw9K9TjUAvPpZYuTLeEt7qfuTNy2KgHR7kzq5aj\"]}},\"version\":1}",
- "bytecode": "0x608060405234801561001057600080fd5b506040516119af3803806119af8339818101604052604081101561003357600080fd5b810190808051906020019092919080519060200190929190505050600061005e61027d60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561013657600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561017057600080fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f52db5c2cb9235be3e8a3fe47f4ec4bc55b5e28aa119b750b0e766b1cb00c9aa760405160405180910390a25050610285565b600033905090565b61171b806102946000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806377636d1d1161008c5780638da5cb5b116100665780638da5cb5b146103bf578063a9cd6a2d146103f3578063d15b223e14610449578063f2fde38b14610481576100ea565b806377636d1d146102ae57806378e98392146103065780637f58afc81461037d576100ea565b806334e5197b116100c857806334e5197b146101de57806352569b9d146102205780636f3a922914610262578063715018a6146102a4576100ea565b806309600fa6146100ef57806309added7146101665780632f1704bc146101aa575b600080fd5b61011b6004803603602081101561010557600080fd5b81019080803590602001909291905050506104c5565b604051808681526020018581526020018460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019550505050505060405180910390f35b6101926004803603602081101561017c57600080fd5b8101908080359060200190929190505050610528565b60405180821515815260200191505060405180910390f35b6101b2610548565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61020a600480360360208110156101f457600080fd5b8101908080359060200190929190505050610572565b6040518082815260200191505060405180910390f35b61024c6004803603602081101561023657600080fd5b810190808035906020019092919050505061058a565b6040518082815260200191505060405180910390f35b61028e6004803603602081101561027857600080fd5b81019080803590602001909291905050506105aa565b6040518082815260200191505060405180910390f35b6102ac6105ca565b005b6102da600480360360208110156102c457600080fd5b8101908080359060200190929190505050610737565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610367600480360360c081101561031c57600080fd5b8101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610777565b6040518082815260200191505060405180910390f35b6103a96004803603602081101561039357600080fd5b8101908080359060200190929190505050610b71565b6040518082815260200191505060405180910390f35b6103c7610b91565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104336004803603606081101561040957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610bba565b6040518082815260200191505060405180910390f35b61047f6004803603604081101561045f57600080fd5b810190808035906020019092919080359060200190929190505050610e55565b005b6104c36004803603602081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ee565b005b60046020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905085565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60066020528060005260406000206000915090505481565b600060046000838152602001908152602001600020600301549050919050565b600060046000838152602001908152602001600020600101549050919050565b6105d26114e0565b73ffffffffffffffffffffffffffffffffffffffff166105f0610b91565b73ffffffffffffffffffffffffffffffffffffffff1614610679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006004600083815260200190815260200160002060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060001b8714156107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5541492063616e6e6f74206265207a65726f000000000000000000000000000081525060200191505060405180910390fd5b60038660ff161061084e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116a46021913960400191505060405180910390fd5b6000801b8514156108c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f616c736f4b6e6f776e41732063616e6e6f74206265207a65726f00000000000081525060200191505060405180910390fd5b6000801b841415610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f7374617465436f6d6d6974486173682063616e6e6f74206265207a65726f000081525060200191505060405180910390fd5b600015156005600089815260200190815260200160002060009054906101000a900460ff1615151461097157600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f164c4368585336001806040518663ffffffff1660e01b8152600401808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610a1d57600080fd5b505af1158015610a31573d6000803e3d6000fd5b50505050836004600089815260200190815260200160002060030181905550856004600089815260200190815260200160002060020160006101000a81548160ff021916908360ff160217905550846004600089815260200190815260200160002060010181905550336004600089815260200190815260200160002060020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600460008981526020019081526020016000206000018190555060016005600089815260200190815260200160002060006101000a81548160ff02191690831515021790555083877f2f87578a4aeec4a0b61bbcea1767fec00fa79a35cf600b258509e25acdaba8e760405160405180910390a38690509695505050505050565b600060046000838152602001908152602001600020600001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060001b841415610c35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5541492063616e6e6f74206265207a65726f000000000000000000000000000081525060200191505060405180910390fd5b600115156005600086815260200190815260200160002060009054906101000a900460ff16151514610ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4173736574206d7573742065786973740000000000000000000000000000000081525060200191505060405180910390fd5b6000801b831415610d2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116c56021913960400191505060405180910390fd5b610d3584336114e8565b610d3e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f164c4368484336001806040518663ffffffff1660e01b8152600401808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610dea57600080fd5b505af1158015610dfe573d6000803e3d6000fd5b5050505082600460008681526020019081526020016000206003018190555082847fa83f066abfa07a77196c29bd4b7aab88f194feaa03d9769ec2ceccf6701d06de60405160405180910390a38390509392505050565b60008211610ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f416d6f756e742063616e6e6f74206265207a65726f000000000000000000000081525060200191505060405180910390fd5b81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d6020811015610f9d57600080fd5b81019080805190602001909291905050501015611005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180611643603e913960400191505060405180910390fd5b81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d60208110156110b957600080fd5b81019080805190602001909291905050501015611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611606603d913960400191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156111d457600080fd5b505af11580156111e8573d6000803e3d6000fd5b505050506040513d60208110156111fe57600080fd5b8101908080519060200190929190505050905080611267576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116816023913960400191505060405180910390fd5b61128d83600660008581526020019081526020016000205461155790919063ffffffff16565b60066000848152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1683837f2460c4e801cd784222555963fc8a1f1497f9ce3b23446fa14da62d317098933360405160405180910390a4505050565b6112f66114e0565b73ffffffffffffffffffffffffffffffffffffffff16611314610b91565b73ffffffffffffffffffffffffffffffffffffffff161461139d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611423576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806115e06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60006004600084815260200190815260200160002060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000808284019050838110156115d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737353656e6465722062616c616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e742153656e64657220616c6c6f77616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e74546f6b656e207472616e73616374696f6e20657865637574696f6e206661696c6564215f7479706520616c6c6f7765642076616c7565733a20302c312c322028574950296e65775374617465436f6d6d6974486173682063616e6e6f74206265207a65726fa2646970667358221220b378009612cd1f68ed8ba5b39d8c4663c4577bff6db30499a5ca911b102a86b664736f6c63430007060033",
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c806377636d1d1161008c5780638da5cb5b116100665780638da5cb5b146103bf578063a9cd6a2d146103f3578063d15b223e14610449578063f2fde38b14610481576100ea565b806377636d1d146102ae57806378e98392146103065780637f58afc81461037d576100ea565b806334e5197b116100c857806334e5197b146101de57806352569b9d146102205780636f3a922914610262578063715018a6146102a4576100ea565b806309600fa6146100ef57806309added7146101665780632f1704bc146101aa575b600080fd5b61011b6004803603602081101561010557600080fd5b81019080803590602001909291905050506104c5565b604051808681526020018581526020018460ff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019550505050505060405180910390f35b6101926004803603602081101561017c57600080fd5b8101908080359060200190929190505050610528565b60405180821515815260200191505060405180910390f35b6101b2610548565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61020a600480360360208110156101f457600080fd5b8101908080359060200190929190505050610572565b6040518082815260200191505060405180910390f35b61024c6004803603602081101561023657600080fd5b810190808035906020019092919050505061058a565b6040518082815260200191505060405180910390f35b61028e6004803603602081101561027857600080fd5b81019080803590602001909291905050506105aa565b6040518082815260200191505060405180910390f35b6102ac6105ca565b005b6102da600480360360208110156102c457600080fd5b8101908080359060200190929190505050610737565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610367600480360360c081101561031c57600080fd5b8101908080359060200190929190803560ff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610777565b6040518082815260200191505060405180910390f35b6103a96004803603602081101561039357600080fd5b8101908080359060200190929190505050610b71565b6040518082815260200191505060405180910390f35b6103c7610b91565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104336004803603606081101561040957600080fd5b81019080803590602001909291908035906020019092919080359060200190929190505050610bba565b6040518082815260200191505060405180910390f35b61047f6004803603604081101561045f57600080fd5b810190808035906020019092919080359060200190929190505050610e55565b005b6104c36004803603602081101561049757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112ee565b005b60046020528060005260406000206000915090508060000154908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905085565b60056020528060005260406000206000915054906101000a900460ff1681565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60066020528060005260406000206000915090505481565b600060046000838152602001908152602001600020600301549050919050565b600060046000838152602001908152602001600020600101549050919050565b6105d26114e0565b73ffffffffffffffffffffffffffffffffffffffff166105f0610b91565b73ffffffffffffffffffffffffffffffffffffffff1614610679576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60006004600083815260200190815260200160002060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60008060001b8714156107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5541492063616e6e6f74206265207a65726f000000000000000000000000000081525060200191505060405180910390fd5b60038660ff161061084e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116a46021913960400191505060405180910390fd5b6000801b8514156108c7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f616c736f4b6e6f776e41732063616e6e6f74206265207a65726f00000000000081525060200191505060405180910390fd5b6000801b841415610940576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f7374617465436f6d6d6974486173682063616e6e6f74206265207a65726f000081525060200191505060405180910390fd5b600015156005600089815260200190815260200160002060009054906101000a900460ff1615151461097157600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f164c4368585336001806040518663ffffffff1660e01b8152600401808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610a1d57600080fd5b505af1158015610a31573d6000803e3d6000fd5b50505050836004600089815260200190815260200160002060030181905550856004600089815260200190815260200160002060020160006101000a81548160ff021916908360ff160217905550846004600089815260200190815260200160002060010181905550336004600089815260200190815260200160002060020160016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555042600460008981526020019081526020016000206000018190555060016005600089815260200190815260200160002060006101000a81548160ff02191690831515021790555083877f2f87578a4aeec4a0b61bbcea1767fec00fa79a35cf600b258509e25acdaba8e760405160405180910390a38690509695505050505050565b600060046000838152602001908152602001600020600001549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060001b841415610c35576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f5541492063616e6e6f74206265207a65726f000000000000000000000000000081525060200191505060405180910390fd5b600115156005600086815260200190815260200160002060009054906101000a900460ff16151514610ccf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f4173736574206d7573742065786973740000000000000000000000000000000081525060200191505060405180910390fd5b6000801b831415610d2b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806116c56021913960400191505060405180910390fd5b610d3584336114e8565b610d3e57600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f164c4368484336001806040518663ffffffff1660e01b8152600401808681526020018581526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200182815260200195505050505050600060405180830381600087803b158015610dea57600080fd5b505af1158015610dfe573d6000803e3d6000fd5b5050505082600460008681526020019081526020016000206003018190555082847fa83f066abfa07a77196c29bd4b7aab88f194feaa03d9769ec2ceccf6701d06de60405160405180910390a38390509392505050565b60008211610ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f416d6f756e742063616e6e6f74206265207a65726f000000000000000000000081525060200191505060405180910390fd5b81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019250505060206040518083038186803b158015610f7357600080fd5b505afa158015610f87573d6000803e3d6000fd5b505050506040513d6020811015610f9d57600080fd5b81019080805190602001909291905050501015611005576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603e815260200180611643603e913960400191505060405180910390fd5b81600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561108f57600080fd5b505afa1580156110a3573d6000803e3d6000fd5b505050506040513d60208110156110b957600080fd5b81019080805190602001909291905050501015611121576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180611606603d913960400191505060405180910390fd5b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330866040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b1580156111d457600080fd5b505af11580156111e8573d6000803e3d6000fd5b505050506040513d60208110156111fe57600080fd5b8101908080519060200190929190505050905080611267576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116816023913960400191505060405180910390fd5b61128d83600660008581526020019081526020016000205461155790919063ffffffff16565b60066000848152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff1683837f2460c4e801cd784222555963fc8a1f1497f9ce3b23446fa14da62d317098933360405160405180910390a4505050565b6112f66114e0565b73ffffffffffffffffffffffffffffffffffffffff16611314610b91565b73ffffffffffffffffffffffffffffffffffffffff161461139d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611423576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806115e06026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b60006004600084815260200190815260200160002060020160019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614905092915050565b6000808284019050838110156115d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b809150509291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737353656e6465722062616c616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e742153656e64657220616c6c6f77616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e74546f6b656e207472616e73616374696f6e20657865637574696f6e206661696c6564215f7479706520616c6c6f7765642076616c7565733a20302c312c322028574950296e65775374617465436f6d6d6974486173682063616e6e6f74206265207a65726fa2646970667358221220b378009612cd1f68ed8ba5b39d8c4663c4577bff6db30499a5ca911b102a86b664736f6c63430007060033",
- "immutableReferences": {},
- "generatedSources": [],
- "deployedGeneratedSources": [],
- "sourceMap": "623:4983:8:-:0;;;1526:365;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;884:17:0;904:12;:10;;;:12;;:::i;:::-;884:32;;935:9;926:6;;:18;;;;;;;;;;;;;;;;;;992:9;959:43;;988:1;959:43;;;;;;;;;;;;850:159;1636:1:8;1614:24;;:12;:24;;;;1606:33;;;;;;1685:1;1651:36;;:24;:36;;;;1643:45;;;;;;1708:12;1693:5;;:28;;;;;;;;;;;;;;;;;;1752:24;1725;;:51;;;;;;;;;;;;;;;;;;1812:24;1780:17;;:57;;;;;;;;;;;;;;;;;;1862:24;1846:41;;;;;;;;;;;;1526:365;;623:4983;;598:104:6;651:15;685:10;678:17;;598:104;:::o;623:4983:8:-;;;;;;;",
- "deployedSourceMap": "623:4983:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1096:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4128:117;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1141:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3593:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3860:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1717:145:0;;;:::i;:::-;;3734:123:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1894:1092;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3981:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1085:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2991:586:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4825:776;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2011:240:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1042:51:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1096:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4128:117::-;4180:25;4217:24;;;;;;;;;;;4210:31;;4128:117;:::o;1141:45::-;;;;;;;;;;;;;;;;;:::o;3593:138::-;3659:23;3694:12;:17;3707:3;3694:17;;;;;;;;;;;:33;;;3687:40;;3593:138;;;:::o;3860:118::-;3914:19;3945:12;:17;3958:3;3945:17;;;;;;;;;;;:29;;;3938:36;;3860:118;;;:::o;1717:145:0:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1823:1:::1;1786:40;;1807:6;::::0;::::1;;;;;;;;1786:40;;;;;;;;;;;;1853:1;1836:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1717:145::o:0;3734:123:8:-;3795:18;3825:12;:17;3838:3;3825:17;;;;;;;;;;;:28;;;;;;;;;;;;3818:35;;3734:123;;;:::o;1894:1092::-;2044:7;2070:1;2065:6;;:3;:6;;2057:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2114:1;2106:5;:9;;;2098:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2178:1;2165:14;;:11;:14;;2157:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2239:1;2222:18;;:15;:18;;2214:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2305:5;2287:23;;:9;:14;2297:3;2287:14;;;;;;;;;;;;;;;;;;;;;:23;;;2279:33;;;;;;2472:17;;;;;;;;;;;:39;;;2512:15;2529:8;2547:10;2560:1;2563;2472:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2649:15;2613:12;:17;2626:3;2613:17;;;;;;;;;;;:33;;:51;;;;2694:5;2668:12;:17;2681:3;2668:17;;;;;;;;;;;:23;;;:31;;;;;;;;;;;;;;;;;;2735:11;2703:12;:17;2716:3;2703:17;;;;;;;;;;;:29;;:43;;;;2781:10;2750:12;:17;2763:3;2750:17;;;;;;;;;;;:28;;;:41;;;;;;;;;;;;;;;;;;2885:15;2847:12;:17;2860:3;2847:17;;;;;;;;;;;:35;;:53;;;;2921:4;2904:9;:14;2914:3;2904:14;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;2951:15;2946:3;2935:32;;;;;;;;;;2979:3;2972:10;;1894:1092;;;;;;;;:::o;3981:144::-;4049:25;4086:12;:17;4099:3;4086:17;;;;;;;;;;;:35;;;4079:42;;3981:144;;;:::o;1085:85:0:-;1131:7;1157:6;;;;;;;;;;;1150:13;;1085:85;:::o;2991:586:8:-;3092:7;3119:1;3114:6;;:3;:6;;3106:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3173:4;3155:22;;:9;:14;3165:3;3155:14;;;;;;;;;;;;;;;;;;;;;:22;;;3147:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3231:1;3211:21;;:18;:21;;3203:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3282:23;3290:3;3294:10;3282:7;:23::i;:::-;3274:32;;;;;;3313:17;;;;;;;;;;;:39;;;3353:18;3373:8;3383:10;3395:1;3398;3313:87;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3451:18;3414:12;:17;3427:3;3414:17;;;;;;;;;;;:33;;:55;;;;3539:18;3534:3;3518:40;;;;;;;;;;3570:3;3563:10;;2991:586;;;;;:::o;4825:776::-;4908:1;4901:6;:8;4893:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4997:6;4951:5;;;;;;;;;;;:15;;;4967:10;4987:4;4951:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:52;;4943:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5117:6;5086:5;;;;;;;;;;;:15;;;5102:10;5086:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:37;;5078:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5198:23;5224:5;;;;;;;;;;;:18;;;5243:10;5263:4;5270:6;5224:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5198:79;;5293:18;5285:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5514:27;5534:6;5514:10;:15;5525:3;5514:15;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;5496:10;:15;5507:3;5496:15;;;;;;;;;;;:45;;;;5585:10;5550:46;;5578:6;5573:3;5550:46;;;;;;;;;;4825:776;;;:::o;2011:240:0:-;1308:12;:10;:12::i;:::-;1297:23;;:7;:5;:7::i;:::-;:23;;;1289:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2119:1:::1;2099:22;;:8;:22;;;;2091:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2208:8;2179:38;;2200:6;::::0;::::1;;;;;;;;2179:38;;;;;;;;;;;;2236:8;2227:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2011:240:::0;:::o;598:104:6:-;651:15;685:10;678:17;;598:104;:::o;4614:129:8:-;4677:4;4707:12;:17;4720:3;4707:17;;;;;;;;;;;:28;;;;;;;;;;;;4698:37;;:5;:37;;;4691:44;;4614:129;;;;:::o;2690:175:2:-;2748:7;2767:9;2783:1;2779;:5;2767:17;;2807:1;2802;:6;;2794:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2857:1;2850:8;;;2690:175;;;;:::o",
- "source": "pragma solidity >=0.6.0 <0.8.0;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC721/IERC721.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/access/Ownable.sol\";\nimport \"./DKGcontract.sol\";\n\n/*\n\nUAI/UALs essentially are:\n\n- DID/DID URLs native to the OriginTrail DKG\n- uniquely identify physical or digital assets (DID subjects)\n- have one or more \"owners\" (DID controllers)\n\nThe specification for UAI/UALs is currently WIP.\n\n*/\n\ncontract UAIRegistry is Ownable {\n\n\tenum AssetType{\n\t\tNative,\n\t\tERC721,\n\t\tERC1155\n\t}\n\n\tusing SafeMath for uint256;\n\tIERC20 token;\n\tDKGcontract AssertionRegistry;\n\taddress AssertionRegistryAddress;\n\n\tstruct AssetRecord{\n\t\tuint256 creationTimestamp;\n\t\tbytes32 alsoKnownAs; // alternative ID, as defined in DID-core spec, PoC address + tokenURI\n\t\tuint8 _type;\n\t\taddress controller; // tbd \n\t\tbytes32 stateCommitHash;\n\t}\n\n\tmapping(bytes32 => AssetRecord) public assetRecords;\n\tmapping(bytes32 => bool) public UAIstatus; \n\tmapping(bytes32 => uint256) public assetStake; \n\t\n\n\t// events\n\tevent UAIRegistryInit(address indexed assertionRegistryAddress);\n\tevent UAICreated(bytes32 indexed UAI, bytes32 indexed stateCommitHash);\n\tevent UAIUpdatedState(bytes32 indexed UAI, bytes32 indexed stateCommitHash );\n\tevent TokensDepositedToAsset(bytes32 indexed UAI, uint256 indexed amount, address indexed depositor);\n\n\tconstructor(address tokenAddress, address assertionRegistryAddress) public {\n\t\trequire(tokenAddress!=address(0));\n\t\trequire(assertionRegistryAddress!=address(0));\n\n\t\ttoken = IERC20(tokenAddress);\n\t\tAssertionRegistryAddress = assertionRegistryAddress;\n\t\tAssertionRegistry = DKGcontract(assertionRegistryAddress);\n\t\temit UAIRegistryInit(assertionRegistryAddress);\n\t}\n\n\tfunction registerAsset(bytes32 UAI, uint8 _type, bytes32 alsoKnownAs, bytes32 stateCommitHash, bytes32 rootHash, uint256 tokenAmount) public returns (bytes32){\n\n\t\trequire(UAI!=0, \"UAI cannot be zero\");\n\t\trequire(_type < 3, \"_type allowed values: 0,1,2 (WIP)\");\n\t\trequire(alsoKnownAs!=0, \"alsoKnownAs cannot be zero\");\n\t\trequire(stateCommitHash!=0, \"stateCommitHash cannot be zero\");\n\t\trequire(UAIstatus[UAI] == false ); // should not be possible to register existing asset again\n\n\t\t//bytes32 UAI = createUAI(_type,alsoKnownAs);\n\n\t\t// depositTokens(tokenAmount, UAI); // todo\n\n\t\tAssertionRegistry.createAssertionRecord(stateCommitHash, rootHash, address(msg.sender), 1, 1); // todo: update when DKGcontract is updated\n\t\tassetRecords[UAI].stateCommitHash = stateCommitHash;\n\t\tassetRecords[UAI]._type = _type;\n\t\tassetRecords[UAI].alsoKnownAs = alsoKnownAs;\n\t\tassetRecords[UAI].controller = msg.sender; // should update with AssetControllerProxy contract\n\t\tassetRecords[UAI].creationTimestamp = block.timestamp;\n\t\tUAIstatus[UAI] = true;\n\n\t\temit UAICreated(UAI, stateCommitHash);\n\n\t\treturn UAI;\n\t}\t\n\n\n\tfunction updateAssetState(bytes32 UAI, bytes32 newStateCommitHash, bytes32 rootHash) public returns (bytes32) {\n\n\t\trequire(UAI!=0, \"UAI cannot be zero\");\n\t\trequire(UAIstatus[UAI] == true, \"Asset must exist\" );\n\t\trequire(newStateCommitHash!=0, \"newStateCommitHash cannot be zero\");\n\t\trequire(isOwner(UAI,msg.sender));\n\t\t\n\t\tAssertionRegistry.createAssertionRecord(newStateCommitHash, rootHash, msg.sender, 1, 1); // UPDATE\n\t\tassetRecords[UAI].stateCommitHash = newStateCommitHash;\n\t\t// todo: store old commits somewhere\n\n\t\temit UAIUpdatedState(UAI, newStateCommitHash);\n\n\t\treturn UAI;\n\t}\n\n\n\t// getters\n\tfunction getAssetStateCommitHash(bytes32 UAI) public view returns(bytes32 stateCommitHash){\n\t\treturn assetRecords[UAI].stateCommitHash;\n\t}\n\n\tfunction getAssetController(bytes32 UAI) public view returns(address controller){\n\t\treturn assetRecords[UAI].controller;\n\t}\n\n\tfunction getAssetAKA(bytes32 UAI) public view returns(bytes32 alsoKnownAs){\n\t\treturn assetRecords[UAI].alsoKnownAs;\n\t}\n\n\tfunction getAssetCreationTimestamp(bytes32 UAI) public view returns(uint256 creationTimestamp){\n\t\treturn assetRecords[UAI].creationTimestamp;\n\t}\n\n\tfunction getAssertionRegistry() public view returns(address assertionRegistry){\n\t\treturn AssertionRegistryAddress;\n\t}\n\n\t// internal\n\n\n\t/**\n * @dev Should determine type of ``contractAddress``, if possible, returning enum AssetType\n */\n function determineType(address contractAddress, bytes32 id) internal returns (uint8){\n\t\treturn 0; // todo: implement detection of contract type\n\t}\n\n\t/**\n * @dev Returns bool checking if ``owner`` is controller of ``UAI``\n */\n function isOwner(bytes32 UAI, address owner) internal returns (bool) {\n \treturn owner == assetRecords[UAI].controller;\n }\n\n\t/**\n * @dev Deposits tokens in ``amount`` to specific ``UAI``\n */\n function depositTokens(uint256 amount, bytes32 UAI) public {\n\n \trequire(amount>0, \"Amount cannot be zero\");\n \trequire(token.allowance(msg.sender, address(this)) >= amount, \"Sender allowance must be equal to or higher than chosen amount\");\n \trequire(token.balanceOf(msg.sender) >= amount, \"Sender balance must be equal to or higher than chosen amount!\");\n\n \tbool transaction_result = token.transferFrom(msg.sender, address(this), amount);\n \trequire(transaction_result, \"Token transaction execution failed!\");\n\n\t\t// if (stake[msg.sender] == 0){\n\t\t// \tparticipant_indexes[msg.sender] = participants.length;\n\t\t// \tparticipants.push(msg.sender);\n\t\t// }\n\n\t\tassetStake[UAI] = assetStake[UAI].add(amount);\n\t\temit TokensDepositedToAsset(UAI, amount,msg.sender);\n\n\t}\t\n\n\n}",
- "sourcePath": "/Users/miloskotlar/dkg-onchain-module-v6/contracts/UAIRegistry.sol",
- "ast": {
- "absolutePath": "project:/contracts/UAIRegistry.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "DKGcontract": [
- 1138
- ],
- "IERC1155": [
- 598
- ],
- "IERC165": [
- 121
- ],
- "IERC20": [
- 676
- ],
- "IERC721": [
- 792
- ],
- "Ownable": [
- 109
- ],
- "SafeMath": [
- 476
- ],
- "UAIRegistry": [
- 1610
- ]
- },
- "id": 1611,
- "nodeType": "SourceUnit",
- "nodes": [
- {
- "id": 1140,
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ],
- "nodeType": "PragmaDirective",
- "src": "0:31:8"
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "id": 1141,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 677,
- "src": "33:64:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC721/IERC721.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC721/IERC721.sol",
- "id": 1142,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 793,
- "src": "98:66:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol",
- "id": 1143,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 599,
- "src": "165:68:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "id": 1144,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 477,
- "src": "234:59:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "id": 1145,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 110,
- "src": "294:60:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "absolutePath": "project:/contracts/DKGcontract.sol",
- "file": "./DKGcontract.sol",
- "id": 1146,
- "nodeType": "ImportDirective",
- "scope": 1611,
- "sourceUnit": 1139,
- "src": "355:27:8",
- "symbolAliases": [],
- "unitAlias": ""
- },
- {
- "abstract": false,
- "baseContracts": [
- {
- "baseName": {
- "id": 1147,
- "name": "Ownable",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 109,
- "src": "647:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_Ownable_$109",
- "typeString": "contract Ownable"
- }
- },
- "id": 1148,
- "nodeType": "InheritanceSpecifier",
- "src": "647:7:8"
- }
- ],
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "id": 1610,
- "linearizedBaseContracts": [
- 1610,
- 109,
- 815
- ],
- "name": "UAIRegistry",
- "nodeType": "ContractDefinition",
- "nodes": [
- {
- "canonicalName": "UAIRegistry.AssetType",
- "id": 1152,
- "members": [
- {
- "id": 1149,
- "name": "Native",
- "nodeType": "EnumValue",
- "src": "677:6:8"
- },
- {
- "id": 1150,
- "name": "ERC721",
- "nodeType": "EnumValue",
- "src": "687:6:8"
- },
- {
- "id": 1151,
- "name": "ERC1155",
- "nodeType": "EnumValue",
- "src": "697:7:8"
- }
- ],
- "name": "AssetType",
- "nodeType": "EnumDefinition",
- "src": "659:48:8"
- },
- {
- "id": 1155,
- "libraryName": {
- "id": 1153,
- "name": "SafeMath",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 476,
- "src": "716:8:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_SafeMath_$476",
- "typeString": "library SafeMath"
- }
- },
- "nodeType": "UsingForDirective",
- "src": "710:27:8",
- "typeName": {
- "id": 1154,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "729:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- {
- "constant": false,
- "id": 1157,
- "mutability": "mutable",
- "name": "token",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "739:12:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- },
- "typeName": {
- "id": 1156,
- "name": "IERC20",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 676,
- "src": "739:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1159,
- "mutability": "mutable",
- "name": "AssertionRegistry",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "754:29:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- },
- "typeName": {
- "id": 1158,
- "name": "DKGcontract",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 1138,
- "src": "754:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1161,
- "mutability": "mutable",
- "name": "AssertionRegistryAddress",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "786:32:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1160,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "786:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "canonicalName": "UAIRegistry.AssetRecord",
- "id": 1172,
- "members": [
- {
- "constant": false,
- "id": 1163,
- "mutability": "mutable",
- "name": "creationTimestamp",
- "nodeType": "VariableDeclaration",
- "scope": 1172,
- "src": "844:25:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1162,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "844:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1165,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "nodeType": "VariableDeclaration",
- "scope": 1172,
- "src": "873:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1164,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "873:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1167,
- "mutability": "mutable",
- "name": "_type",
- "nodeType": "VariableDeclaration",
- "scope": 1172,
- "src": "967:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1166,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "967:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1169,
- "mutability": "mutable",
- "name": "controller",
- "nodeType": "VariableDeclaration",
- "scope": 1172,
- "src": "982:18:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1168,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "982:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1171,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1172,
- "src": "1012:23:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1170,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1012:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "name": "AssetRecord",
- "nodeType": "StructDefinition",
- "scope": 1610,
- "src": "822:217:8",
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "09600fa6",
- "id": 1176,
- "mutability": "mutable",
- "name": "assetRecords",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "1042:51:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord)"
- },
- "typeName": {
- "id": 1175,
- "keyType": {
- "id": 1173,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1050:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1042:31:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord)"
- },
- "valueType": {
- "id": 1174,
- "name": "AssetRecord",
- "nodeType": "UserDefinedTypeName",
- "referencedDeclaration": 1172,
- "src": "1061:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage_ptr",
- "typeString": "struct UAIRegistry.AssetRecord"
- }
- }
- },
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "09added7",
- "id": 1180,
- "mutability": "mutable",
- "name": "UAIstatus",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "1096:41:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "typeName": {
- "id": 1179,
- "keyType": {
- "id": 1177,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1104:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1096:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- },
- "valueType": {
- "id": 1178,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "1115:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- },
- "visibility": "public"
- },
- {
- "constant": false,
- "functionSelector": "34e5197b",
- "id": 1184,
- "mutability": "mutable",
- "name": "assetStake",
- "nodeType": "VariableDeclaration",
- "scope": 1610,
- "src": "1141:45:8",
- "stateVariable": true,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
- "typeString": "mapping(bytes32 => uint256)"
- },
- "typeName": {
- "id": 1183,
- "keyType": {
- "id": 1181,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1149:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Mapping",
- "src": "1141:27:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
- "typeString": "mapping(bytes32 => uint256)"
- },
- "valueType": {
- "id": 1182,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1160:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- },
- "visibility": "public"
- },
- {
- "anonymous": false,
- "id": 1188,
- "name": "UAIRegistryInit",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 1187,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1186,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionRegistryAddress",
- "nodeType": "VariableDeclaration",
- "scope": 1188,
- "src": "1226:40:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1185,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1226:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1225:42:8"
- },
- "src": "1204:64:8"
- },
- {
- "anonymous": false,
- "id": 1194,
- "name": "UAICreated",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 1193,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1190,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1194,
- "src": "1287:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1189,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1287:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1192,
- "indexed": true,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1194,
- "src": "1308:31:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1191,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1308:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1286:54:8"
- },
- "src": "1270:71:8"
- },
- {
- "anonymous": false,
- "id": 1200,
- "name": "UAIUpdatedState",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 1199,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1196,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1200,
- "src": "1365:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1195,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1365:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1198,
- "indexed": true,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1200,
- "src": "1386:31:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1197,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1386:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1364:55:8"
- },
- "src": "1343:77:8"
- },
- {
- "anonymous": false,
- "id": 1208,
- "name": "TokensDepositedToAsset",
- "nodeType": "EventDefinition",
- "parameters": {
- "id": 1207,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1202,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1208,
- "src": "1451:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1201,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1451:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1204,
- "indexed": true,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "scope": 1208,
- "src": "1472:22:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1203,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "1472:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1206,
- "indexed": true,
- "mutability": "mutable",
- "name": "depositor",
- "nodeType": "VariableDeclaration",
- "scope": 1208,
- "src": "1496:25:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1205,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1496:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1450:72:8"
- },
- "src": "1422:101:8"
- },
- {
- "body": {
- "id": 1253,
- "nodeType": "Block",
- "src": "1602:289:8",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1221,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1216,
- "name": "tokenAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1210,
- "src": "1614:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "arguments": [
- {
- "hexValue": "30",
- "id": 1219,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1636:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 1218,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1628:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1217,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1628:7:8",
- "typeDescriptions": {}
- }
- },
- "id": 1220,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1628:10:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "1614:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "id": 1215,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1606:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
- "typeString": "function (bool) pure"
- }
- },
- "id": 1222,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1606:33:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1223,
- "nodeType": "ExpressionStatement",
- "src": "1606:33:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1230,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1225,
- "name": "assertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1212,
- "src": "1651:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "arguments": [
- {
- "hexValue": "30",
- "id": 1228,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "1685:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "id": 1227,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "1677:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1226,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1677:7:8",
- "typeDescriptions": {}
- }
- },
- "id": 1229,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1677:10:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "1651:36:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "id": 1224,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "1643:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
- "typeString": "function (bool) pure"
- }
- },
- "id": 1231,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1643:45:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1232,
- "nodeType": "ExpressionStatement",
- "src": "1643:45:8"
- },
- {
- "expression": {
- "id": 1237,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 1233,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1157,
- "src": "1693:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "arguments": [
- {
- "id": 1235,
- "name": "tokenAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1210,
- "src": "1708:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1234,
- "name": "IERC20",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 676,
- "src": "1701:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_IERC20_$676_$",
- "typeString": "type(contract IERC20)"
- }
- },
- "id": 1236,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1701:20:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "src": "1693:28:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "id": 1238,
- "nodeType": "ExpressionStatement",
- "src": "1693:28:8"
- },
- {
- "expression": {
- "id": 1241,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 1239,
- "name": "AssertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1161,
- "src": "1725:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1240,
- "name": "assertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1212,
- "src": "1752:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "1725:51:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1242,
- "nodeType": "ExpressionStatement",
- "src": "1725:51:8"
- },
- {
- "expression": {
- "id": 1247,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "id": 1243,
- "name": "AssertionRegistry",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1159,
- "src": "1780:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "arguments": [
- {
- "id": 1245,
- "name": "assertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1212,
- "src": "1812:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1244,
- "name": "DKGcontract",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1138,
- "src": "1800:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_contract$_DKGcontract_$1138_$",
- "typeString": "type(contract DKGcontract)"
- }
- },
- "id": 1246,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1800:37:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "src": "1780:57:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "id": 1248,
- "nodeType": "ExpressionStatement",
- "src": "1780:57:8"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1250,
- "name": "assertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1212,
- "src": "1862:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "id": 1249,
- "name": "UAIRegistryInit",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1188,
- "src": "1846:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
- "typeString": "function (address)"
- }
- },
- "id": 1251,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "1846:41:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1252,
- "nodeType": "EmitStatement",
- "src": "1841:46:8"
- }
- ]
- },
- "id": 1254,
- "implemented": true,
- "kind": "constructor",
- "modifiers": [],
- "name": "",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1213,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1210,
- "mutability": "mutable",
- "name": "tokenAddress",
- "nodeType": "VariableDeclaration",
- "scope": 1254,
- "src": "1538:20:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1209,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1538:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1212,
- "mutability": "mutable",
- "name": "assertionRegistryAddress",
- "nodeType": "VariableDeclaration",
- "scope": 1254,
- "src": "1560:32:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1211,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "1560:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1537:56:8"
- },
- "returnParameters": {
- "id": 1214,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "1602:0:8"
- },
- "scope": 1610,
- "src": "1526:365:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1371,
- "nodeType": "Block",
- "src": "2052:934:8",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1274,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1272,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2065:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1273,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2070:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2065:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "5541492063616e6e6f74206265207a65726f",
- "id": 1275,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2073:20:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- },
- "value": "UAI cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- }
- ],
- "id": 1271,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2057:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1276,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2057:37:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1277,
- "nodeType": "ExpressionStatement",
- "src": "2057:37:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "id": 1281,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1279,
- "name": "_type",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1258,
- "src": "2106:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "<",
- "rightExpression": {
- "hexValue": "33",
- "id": 1280,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2114:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_3_by_1",
- "typeString": "int_const 3"
- },
- "value": "3"
- },
- "src": "2106:9:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "5f7479706520616c6c6f7765642076616c7565733a20302c312c32202857495029",
- "id": 1282,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2117:35:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_cf25b7c40ac58b98472d8ae4b6b8703daef3920dd8a8c2b2556b411059eb30d4",
- "typeString": "literal_string \"_type allowed values: 0,1,2 (WIP)\""
- },
- "value": "_type allowed values: 0,1,2 (WIP)"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cf25b7c40ac58b98472d8ae4b6b8703daef3920dd8a8c2b2556b411059eb30d4",
- "typeString": "literal_string \"_type allowed values: 0,1,2 (WIP)\""
- }
- ],
- "id": 1278,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2098:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1283,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2098:55:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1284,
- "nodeType": "ExpressionStatement",
- "src": "2098:55:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1288,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1286,
- "name": "alsoKnownAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1260,
- "src": "2165:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1287,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2178:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2165:14:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "616c736f4b6e6f776e41732063616e6e6f74206265207a65726f",
- "id": 1289,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2181:28:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_889a93080df6c407ecf58a36aecc1ba986f5889f8941567948da9184911b568f",
- "typeString": "literal_string \"alsoKnownAs cannot be zero\""
- },
- "value": "alsoKnownAs cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_889a93080df6c407ecf58a36aecc1ba986f5889f8941567948da9184911b568f",
- "typeString": "literal_string \"alsoKnownAs cannot be zero\""
- }
- ],
- "id": 1285,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2157:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1290,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2157:53:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1291,
- "nodeType": "ExpressionStatement",
- "src": "2157:53:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1295,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1293,
- "name": "stateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1262,
- "src": "2222:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1294,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2239:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "2222:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "7374617465436f6d6d6974486173682063616e6e6f74206265207a65726f",
- "id": 1296,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2242:32:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_f0caaefff46a6fa6373daf0acae33c6a0d7f130841550573dc0a5b0fb9ec40cc",
- "typeString": "literal_string \"stateCommitHash cannot be zero\""
- },
- "value": "stateCommitHash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_f0caaefff46a6fa6373daf0acae33c6a0d7f130841550573dc0a5b0fb9ec40cc",
- "typeString": "literal_string \"stateCommitHash cannot be zero\""
- }
- ],
- "id": 1292,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2214:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1297,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2214:61:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1298,
- "nodeType": "ExpressionStatement",
- "src": "2214:61:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 1304,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "baseExpression": {
- "id": 1300,
- "name": "UAIstatus",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1180,
- "src": "2287:9:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 1302,
- "indexExpression": {
- "id": 1301,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2297:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2287:14:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "hexValue": "66616c7365",
- "id": 1303,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2305:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "false"
- },
- "src": "2287:23:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "id": 1299,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "2279:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
- "typeString": "function (bool) pure"
- }
- },
- "id": 1305,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2279:33:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1306,
- "nodeType": "ExpressionStatement",
- "src": "2279:33:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "id": 1310,
- "name": "stateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1262,
- "src": "2512:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1311,
- "name": "rootHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1264,
- "src": "2529:8:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "arguments": [
- {
- "expression": {
- "id": 1314,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "2547:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1315,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "2547:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1313,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "2539:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1312,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "2539:7:8",
- "typeDescriptions": {}
- }
- },
- "id": 1316,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2539:19:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "hexValue": "31",
- "id": 1317,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2560:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- {
- "hexValue": "31",
- "id": 1318,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2563:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "expression": {
- "id": 1307,
- "name": "AssertionRegistry",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1159,
- "src": "2472:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "id": 1309,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "createAssertionRecord",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1015,
- "src": "2472:39:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
- "typeString": "function (bytes32,bytes32,address,uint256,uint256) external"
- }
- },
- "id": 1319,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2472:93:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1320,
- "nodeType": "ExpressionStatement",
- "src": "2472:93:8"
- },
- {
- "expression": {
- "id": 1326,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1321,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "2613:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1323,
- "indexExpression": {
- "id": 1322,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2626:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2613:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1324,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "stateCommitHash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1171,
- "src": "2613:33:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1325,
- "name": "stateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1262,
- "src": "2649:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "2613:51:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1327,
- "nodeType": "ExpressionStatement",
- "src": "2613:51:8"
- },
- {
- "expression": {
- "id": 1333,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1328,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "2668:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1330,
- "indexExpression": {
- "id": 1329,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2681:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2668:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1331,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "_type",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1167,
- "src": "2668:23:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1332,
- "name": "_type",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1258,
- "src": "2694:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "src": "2668:31:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "id": 1334,
- "nodeType": "ExpressionStatement",
- "src": "2668:31:8"
- },
- {
- "expression": {
- "id": 1340,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1335,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "2703:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1337,
- "indexExpression": {
- "id": 1336,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2716:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2703:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1338,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "alsoKnownAs",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1165,
- "src": "2703:29:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1339,
- "name": "alsoKnownAs",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1260,
- "src": "2735:11:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "2703:43:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1341,
- "nodeType": "ExpressionStatement",
- "src": "2703:43:8"
- },
- {
- "expression": {
- "id": 1348,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1342,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "2750:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1344,
- "indexExpression": {
- "id": 1343,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2763:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2750:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1345,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "controller",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1169,
- "src": "2750:28:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "expression": {
- "id": 1346,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "2781:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1347,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "2781:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- "src": "2750:41:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "id": 1349,
- "nodeType": "ExpressionStatement",
- "src": "2750:41:8"
- },
- {
- "expression": {
- "id": 1356,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1350,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "2847:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1352,
- "indexExpression": {
- "id": 1351,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2860:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "2847:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1353,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "creationTimestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1163,
- "src": "2847:35:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "expression": {
- "id": 1354,
- "name": "block",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967292,
- "src": "2885:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_block",
- "typeString": "block"
- }
- },
- "id": 1355,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "timestamp",
- "nodeType": "MemberAccess",
- "src": "2885:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "2847:53:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1357,
- "nodeType": "ExpressionStatement",
- "src": "2847:53:8"
- },
- {
- "expression": {
- "id": 1362,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "baseExpression": {
- "id": 1358,
- "name": "UAIstatus",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1180,
- "src": "2904:9:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 1360,
- "indexExpression": {
- "id": 1359,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2914:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "2904:14:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "hexValue": "74727565",
- "id": 1361,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "2921:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "2904:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "id": 1363,
- "nodeType": "ExpressionStatement",
- "src": "2904:21:8"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1365,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2946:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1366,
- "name": "stateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1262,
- "src": "2951:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "id": 1364,
- "name": "UAICreated",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1194,
- "src": "2935:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
- "typeString": "function (bytes32,bytes32)"
- }
- },
- "id": 1367,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "2935:32:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1368,
- "nodeType": "EmitStatement",
- "src": "2930:37:8"
- },
- {
- "expression": {
- "id": 1369,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1256,
- "src": "2979:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 1270,
- "id": 1370,
- "nodeType": "Return",
- "src": "2972:10:8"
- }
- ]
- },
- "functionSelector": "78e98392",
- "id": 1372,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "registerAsset",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1267,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1256,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "1917:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1255,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1917:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1258,
- "mutability": "mutable",
- "name": "_type",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "1930:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1257,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "1930:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1260,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "1943:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1259,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1943:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1262,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "1964:23:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1261,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1964:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1264,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "1989:16:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1263,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "1989:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1266,
- "mutability": "mutable",
- "name": "tokenAmount",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "2007:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1265,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "2007:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "1916:111:8"
- },
- "returnParameters": {
- "id": 1270,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1269,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "scope": 1372,
- "src": "2044:7:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1268,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "2044:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "2043:9:8"
- },
- "scope": 1610,
- "src": "1894:1092:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1439,
- "nodeType": "Block",
- "src": "3101:476:8",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1386,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1384,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3114:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1385,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3119:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "3114:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "5541492063616e6e6f74206265207a65726f",
- "id": 1387,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3122:20:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- },
- "value": "UAI cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- }
- ],
- "id": 1383,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "3106:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1388,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3106:37:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1389,
- "nodeType": "ExpressionStatement",
- "src": "3106:37:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "id": 1395,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "baseExpression": {
- "id": 1391,
- "name": "UAIstatus",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1180,
- "src": "3155:9:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$",
- "typeString": "mapping(bytes32 => bool)"
- }
- },
- "id": 1393,
- "indexExpression": {
- "id": 1392,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3165:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3155:14:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "hexValue": "74727565",
- "id": 1394,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "bool",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3173:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "value": "true"
- },
- "src": "3155:22:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "4173736574206d757374206578697374",
- "id": 1396,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3179:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_1288ba10f0c0a9fa84e2f581ad61c72d898b048e206b52821e5663686f23ff37",
- "typeString": "literal_string \"Asset must exist\""
- },
- "value": "Asset must exist"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_1288ba10f0c0a9fa84e2f581ad61c72d898b048e206b52821e5663686f23ff37",
- "typeString": "literal_string \"Asset must exist\""
- }
- ],
- "id": 1390,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "3147:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1397,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3147:52:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1398,
- "nodeType": "ExpressionStatement",
- "src": "3147:52:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "id": 1402,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1400,
- "name": "newStateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1376,
- "src": "3211:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "!=",
- "rightExpression": {
- "hexValue": "30",
- "id": 1401,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3231:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "3211:21:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "6e65775374617465436f6d6d6974486173682063616e6e6f74206265207a65726f",
- "id": 1403,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3234:35:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_fa287c795401a9447e9af39b3f60c2649bae99888868237daa5c7cc28744941b",
- "typeString": "literal_string \"newStateCommitHash cannot be zero\""
- },
- "value": "newStateCommitHash cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fa287c795401a9447e9af39b3f60c2649bae99888868237daa5c7cc28744941b",
- "typeString": "literal_string \"newStateCommitHash cannot be zero\""
- }
- ],
- "id": 1399,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "3203:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1404,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3203:67:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1405,
- "nodeType": "ExpressionStatement",
- "src": "3203:67:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "arguments": [
- {
- "id": 1408,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3290:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "expression": {
- "id": 1409,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "3294:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1410,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "3294:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1407,
- "name": "isOwner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1531,
- "src": "3282:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$",
- "typeString": "function (bytes32,address) returns (bool)"
- }
- },
- "id": 1411,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3282:23:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "id": 1406,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "3274:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
- "typeString": "function (bool) pure"
- }
- },
- "id": 1412,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3274:32:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1413,
- "nodeType": "ExpressionStatement",
- "src": "3274:32:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "id": 1417,
- "name": "newStateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1376,
- "src": "3353:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1418,
- "name": "rootHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1378,
- "src": "3373:8:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "expression": {
- "id": 1419,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "3383:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1420,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "3383:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "hexValue": "31",
- "id": 1421,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3395:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- },
- {
- "hexValue": "31",
- "id": 1422,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "3398:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- "value": "1"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "expression": {
- "id": 1414,
- "name": "AssertionRegistry",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1159,
- "src": "3313:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_DKGcontract_$1138",
- "typeString": "contract DKGcontract"
- }
- },
- "id": 1416,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "createAssertionRecord",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1015,
- "src": "3313:39:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_bytes32_$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
- "typeString": "function (bytes32,bytes32,address,uint256,uint256) external"
- }
- },
- "id": 1423,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3313:87:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1424,
- "nodeType": "ExpressionStatement",
- "src": "3313:87:8"
- },
- {
- "expression": {
- "id": 1430,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "expression": {
- "baseExpression": {
- "id": 1425,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "3414:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1427,
- "indexExpression": {
- "id": 1426,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3427:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3414:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1428,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "memberName": "stateCommitHash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1171,
- "src": "3414:33:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "id": 1429,
- "name": "newStateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1376,
- "src": "3451:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "src": "3414:55:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "id": 1431,
- "nodeType": "ExpressionStatement",
- "src": "3414:55:8"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1433,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3534:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1434,
- "name": "newStateCommitHash",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1376,
- "src": "3539:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "id": 1432,
- "name": "UAIUpdatedState",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1200,
- "src": "3518:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$",
- "typeString": "function (bytes32,bytes32)"
- }
- },
- "id": 1435,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "3518:40:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1436,
- "nodeType": "EmitStatement",
- "src": "3513:45:8"
- },
- {
- "expression": {
- "id": 1437,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1374,
- "src": "3570:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 1382,
- "id": 1438,
- "nodeType": "Return",
- "src": "3563:10:8"
- }
- ]
- },
- "functionSelector": "a9cd6a2d",
- "id": 1440,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "updateAssetState",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1379,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1374,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1440,
- "src": "3017:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1373,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3017:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1376,
- "mutability": "mutable",
- "name": "newStateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1440,
- "src": "3030:26:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1375,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3030:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1378,
- "mutability": "mutable",
- "name": "rootHash",
- "nodeType": "VariableDeclaration",
- "scope": 1440,
- "src": "3058:16:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1377,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3058:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3016:59:8"
- },
- "returnParameters": {
- "id": 1382,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1381,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "scope": 1440,
- "src": "3092:7:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1380,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3092:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3091:9:8"
- },
- "scope": 1610,
- "src": "2991:586:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1452,
- "nodeType": "Block",
- "src": "3683:48:8",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1447,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "3694:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1449,
- "indexExpression": {
- "id": 1448,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1442,
- "src": "3707:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3694:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1450,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "stateCommitHash",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1171,
- "src": "3694:33:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 1446,
- "id": 1451,
- "nodeType": "Return",
- "src": "3687:40:8"
- }
- ]
- },
- "functionSelector": "52569b9d",
- "id": 1453,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssetStateCommitHash",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1443,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1442,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1453,
- "src": "3626:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1441,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3626:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3625:13:8"
- },
- "returnParameters": {
- "id": 1446,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1445,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "nodeType": "VariableDeclaration",
- "scope": 1453,
- "src": "3659:23:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1444,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3659:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3658:25:8"
- },
- "scope": 1610,
- "src": "3593:138:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1465,
- "nodeType": "Block",
- "src": "3814:43:8",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1460,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "3825:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1462,
- "indexExpression": {
- "id": 1461,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1455,
- "src": "3838:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3825:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1463,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "controller",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1169,
- "src": "3825:28:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "functionReturnParameters": 1459,
- "id": 1464,
- "nodeType": "Return",
- "src": "3818:35:8"
- }
- ]
- },
- "functionSelector": "77636d1d",
- "id": 1466,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssetController",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1456,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1455,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1466,
- "src": "3762:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1454,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3762:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3761:13:8"
- },
- "returnParameters": {
- "id": 1459,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1458,
- "mutability": "mutable",
- "name": "controller",
- "nodeType": "VariableDeclaration",
- "scope": 1466,
- "src": "3795:18:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1457,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "3795:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3794:20:8"
- },
- "scope": 1610,
- "src": "3734:123:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1478,
- "nodeType": "Block",
- "src": "3934:44:8",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1473,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "3945:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1475,
- "indexExpression": {
- "id": 1474,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1468,
- "src": "3958:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "3945:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1476,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "alsoKnownAs",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1165,
- "src": "3945:29:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "functionReturnParameters": 1472,
- "id": 1477,
- "nodeType": "Return",
- "src": "3938:36:8"
- }
- ]
- },
- "functionSelector": "6f3a9229",
- "id": 1479,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssetAKA",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1469,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1468,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1479,
- "src": "3881:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1467,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3881:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3880:13:8"
- },
- "returnParameters": {
- "id": 1472,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1471,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "nodeType": "VariableDeclaration",
- "scope": 1479,
- "src": "3914:19:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1470,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "3914:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "3913:21:8"
- },
- "scope": 1610,
- "src": "3860:118:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1491,
- "nodeType": "Block",
- "src": "4075:50:8",
- "statements": [
- {
- "expression": {
- "expression": {
- "baseExpression": {
- "id": 1486,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "4086:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1488,
- "indexExpression": {
- "id": 1487,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1481,
- "src": "4099:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4086:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1489,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "creationTimestamp",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1163,
- "src": "4086:35:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "functionReturnParameters": 1485,
- "id": 1490,
- "nodeType": "Return",
- "src": "4079:42:8"
- }
- ]
- },
- "functionSelector": "7f58afc8",
- "id": 1492,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssetCreationTimestamp",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1482,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1481,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1492,
- "src": "4016:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1480,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4016:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4015:13:8"
- },
- "returnParameters": {
- "id": 1485,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1484,
- "mutability": "mutable",
- "name": "creationTimestamp",
- "nodeType": "VariableDeclaration",
- "scope": 1492,
- "src": "4049:25:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1483,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4049:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4048:27:8"
- },
- "scope": 1610,
- "src": "3981:144:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1499,
- "nodeType": "Block",
- "src": "4206:39:8",
- "statements": [
- {
- "expression": {
- "id": 1497,
- "name": "AssertionRegistryAddress",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1161,
- "src": "4217:24:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "functionReturnParameters": 1496,
- "id": 1498,
- "nodeType": "Return",
- "src": "4210:31:8"
- }
- ]
- },
- "functionSelector": "2f1704bc",
- "id": 1500,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "getAssertionRegistry",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1493,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "4157:2:8"
- },
- "returnParameters": {
- "id": 1496,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1495,
- "mutability": "mutable",
- "name": "assertionRegistry",
- "nodeType": "VariableDeclaration",
- "scope": 1500,
- "src": "4180:25:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1494,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4180:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4179:27:8"
- },
- "scope": 1610,
- "src": "4128:117:8",
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- {
- "body": {
- "id": 1512,
- "nodeType": "Block",
- "src": "4460:62:8",
- "statements": [
- {
- "expression": {
- "hexValue": "30",
- "id": 1510,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4471:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "functionReturnParameters": 1509,
- "id": 1511,
- "nodeType": "Return",
- "src": "4464:8:8"
- }
- ]
- },
- "documentation": {
- "id": 1501,
- "nodeType": "StructuredDocumentation",
- "src": "4263:107:8",
- "text": " @dev Should determine type of ``contractAddress``, if possible, returning enum AssetType"
- },
- "id": 1513,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "determineType",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1506,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1503,
- "mutability": "mutable",
- "name": "contractAddress",
- "nodeType": "VariableDeclaration",
- "scope": 1513,
- "src": "4399:23:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1502,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4399:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1505,
- "mutability": "mutable",
- "name": "id",
- "nodeType": "VariableDeclaration",
- "scope": 1513,
- "src": "4424:10:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1504,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4424:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4398:37:8"
- },
- "returnParameters": {
- "id": 1509,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1508,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "scope": 1513,
- "src": "4454:5:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "typeName": {
- "id": 1507,
- "name": "uint8",
- "nodeType": "ElementaryTypeName",
- "src": "4454:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4453:7:8"
- },
- "scope": 1610,
- "src": "4376:146:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 1530,
- "nodeType": "Block",
- "src": "4683:60:8",
- "statements": [
- {
- "expression": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "id": 1528,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1523,
- "name": "owner",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1518,
- "src": "4698:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": "==",
- "rightExpression": {
- "expression": {
- "baseExpression": {
- "id": 1524,
- "name": "assetRecords",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1176,
- "src": "4707:12:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_struct$_AssetRecord_$1172_storage_$",
- "typeString": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)"
- }
- },
- "id": 1526,
- "indexExpression": {
- "id": 1525,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1516,
- "src": "4720:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "4707:17:8",
- "typeDescriptions": {
- "typeIdentifier": "t_struct$_AssetRecord_$1172_storage",
- "typeString": "struct UAIRegistry.AssetRecord storage ref"
- }
- },
- "id": 1527,
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "controller",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 1169,
- "src": "4707:28:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "src": "4698:37:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "functionReturnParameters": 1522,
- "id": 1529,
- "nodeType": "Return",
- "src": "4691:44:8"
- }
- ]
- },
- "documentation": {
- "id": 1514,
- "nodeType": "StructuredDocumentation",
- "src": "4525:83:8",
- "text": " @dev Returns bool checking if ``owner`` is controller of ``UAI``"
- },
- "id": 1531,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "isOwner",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1519,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1516,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1531,
- "src": "4631:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1515,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4631:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1518,
- "mutability": "mutable",
- "name": "owner",
- "nodeType": "VariableDeclaration",
- "scope": 1531,
- "src": "4644:13:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "typeName": {
- "id": 1517,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4644:7:8",
- "stateMutability": "nonpayable",
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4630:28:8"
- },
- "returnParameters": {
- "id": 1522,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1521,
- "mutability": "mutable",
- "name": "",
- "nodeType": "VariableDeclaration",
- "scope": 1531,
- "src": "4677:4:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1520,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "4677:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4676:6:8"
- },
- "scope": 1610,
- "src": "4614:129:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- {
- "body": {
- "id": 1608,
- "nodeType": "Block",
- "src": "4884:717:8",
- "statements": [
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1542,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "id": 1540,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "4901:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">",
- "rightExpression": {
- "hexValue": "30",
- "id": 1541,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "number",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4908:1:8",
- "typeDescriptions": {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- },
- "value": "0"
- },
- "src": "4901:8:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "416d6f756e742063616e6e6f74206265207a65726f",
- "id": 1543,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "4911:23:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b",
- "typeString": "literal_string \"Amount cannot be zero\""
- },
- "value": "Amount cannot be zero"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b",
- "typeString": "literal_string \"Amount cannot be zero\""
- }
- ],
- "id": 1539,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "4893:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1544,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4893:42:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1545,
- "nodeType": "ExpressionStatement",
- "src": "4893:42:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1557,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "arguments": [
- {
- "expression": {
- "id": 1549,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "4967:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1550,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "4967:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "arguments": [
- {
- "id": 1553,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967268,
- "src": "4987:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- ],
- "id": 1552,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "4979:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1551,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "4979:7:8",
- "typeDescriptions": {}
- }
- },
- "id": 1554,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4979:13:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "expression": {
- "id": 1547,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1157,
- "src": "4951:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "id": 1548,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "allowance",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 635,
- "src": "4951:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address,address) view external returns (uint256)"
- }
- },
- "id": 1555,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4951:42:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "id": 1556,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "4997:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "4951:52:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "53656e64657220616c6c6f77616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e74",
- "id": 1558,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5005:64:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_3bc5ac98536c45d410bf37692b674d7f6ad3249fabf29eadc142b2e562988389",
- "typeString": "literal_string \"Sender allowance must be equal to or higher than chosen amount\""
- },
- "value": "Sender allowance must be equal to or higher than chosen amount"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_3bc5ac98536c45d410bf37692b674d7f6ad3249fabf29eadc142b2e562988389",
- "typeString": "literal_string \"Sender allowance must be equal to or higher than chosen amount\""
- }
- ],
- "id": 1546,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "4943:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1559,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "4943:127:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1560,
- "nodeType": "ExpressionStatement",
- "src": "4943:127:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "id": 1568,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftExpression": {
- "arguments": [
- {
- "expression": {
- "id": 1564,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "5102:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1565,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "5102:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "expression": {
- "id": 1562,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1157,
- "src": "5086:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "id": 1563,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "balanceOf",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 615,
- "src": "5086:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
- "typeString": "function (address) view external returns (uint256)"
- }
- },
- "id": 1566,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5086:27:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "BinaryOperation",
- "operator": ">=",
- "rightExpression": {
- "id": 1567,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "5117:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5086:37:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "53656e6465722062616c616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e7421",
- "id": 1569,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5125:63:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_262e509abce0ea4c77b39344642b82be870ee6d03e35d57d1dee69295a1e383b",
- "typeString": "literal_string \"Sender balance must be equal to or higher than chosen amount!\""
- },
- "value": "Sender balance must be equal to or higher than chosen amount!"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_262e509abce0ea4c77b39344642b82be870ee6d03e35d57d1dee69295a1e383b",
- "typeString": "literal_string \"Sender balance must be equal to or higher than chosen amount!\""
- }
- ],
- "id": 1561,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "5078:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1570,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5078:111:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1571,
- "nodeType": "ExpressionStatement",
- "src": "5078:111:8"
- },
- {
- "assignments": [
- 1573
- ],
- "declarations": [
- {
- "constant": false,
- "id": 1573,
- "mutability": "mutable",
- "name": "transaction_result",
- "nodeType": "VariableDeclaration",
- "scope": 1608,
- "src": "5198:23:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "typeName": {
- "id": 1572,
- "name": "bool",
- "nodeType": "ElementaryTypeName",
- "src": "5198:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "visibility": "internal"
- }
- ],
- "id": 1584,
- "initialValue": {
- "arguments": [
- {
- "expression": {
- "id": 1576,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "5243:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1577,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "5243:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- },
- {
- "arguments": [
- {
- "id": 1580,
- "name": "this",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967268,
- "src": "5263:4:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- ],
- "id": 1579,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "nodeType": "ElementaryTypeNameExpression",
- "src": "5255:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_type$_t_address_$",
- "typeString": "type(address)"
- },
- "typeName": {
- "id": 1578,
- "name": "address",
- "nodeType": "ElementaryTypeName",
- "src": "5255:7:8",
- "typeDescriptions": {}
- }
- },
- "id": 1581,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "typeConversion",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5255:13:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- },
- {
- "id": 1582,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "5270:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "id": 1574,
- "name": "token",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1157,
- "src": "5224:5:8",
- "typeDescriptions": {
- "typeIdentifier": "t_contract$_IERC20_$676",
- "typeString": "contract IERC20"
- }
- },
- "id": 1575,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "transferFrom",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 657,
- "src": "5224:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$",
- "typeString": "function (address,address,uint256) external returns (bool)"
- }
- },
- "id": 1583,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5224:53:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- "nodeType": "VariableDeclarationStatement",
- "src": "5198:79:8"
- },
- {
- "expression": {
- "arguments": [
- {
- "id": 1586,
- "name": "transaction_result",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1573,
- "src": "5293:18:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- },
- {
- "hexValue": "546f6b656e207472616e73616374696f6e20657865637574696f6e206661696c656421",
- "id": 1587,
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "kind": "string",
- "lValueRequested": false,
- "nodeType": "Literal",
- "src": "5313:37:8",
- "typeDescriptions": {
- "typeIdentifier": "t_stringliteral_c60aa67373380e582a977ce48d7156e19a6358c471790919f2371ebd75aaf7c7",
- "typeString": "literal_string \"Token transaction execution failed!\""
- },
- "value": "Token transaction execution failed!"
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c60aa67373380e582a977ce48d7156e19a6358c471790919f2371ebd75aaf7c7",
- "typeString": "literal_string \"Token transaction execution failed!\""
- }
- ],
- "id": 1585,
- "name": "require",
- "nodeType": "Identifier",
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "src": "5285:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
- "typeString": "function (bool,string memory) pure"
- }
- },
- "id": 1588,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5285:66:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1589,
- "nodeType": "ExpressionStatement",
- "src": "5285:66:8"
- },
- {
- "expression": {
- "id": 1599,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "leftHandSide": {
- "baseExpression": {
- "id": 1590,
- "name": "assetStake",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1184,
- "src": "5496:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
- "typeString": "mapping(bytes32 => uint256)"
- }
- },
- "id": 1592,
- "indexExpression": {
- "id": 1591,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1536,
- "src": "5507:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "nodeType": "IndexAccess",
- "src": "5496:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "nodeType": "Assignment",
- "operator": "=",
- "rightHandSide": {
- "arguments": [
- {
- "id": 1597,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "5534:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "expression": {
- "baseExpression": {
- "id": 1593,
- "name": "assetStake",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1184,
- "src": "5514:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$",
- "typeString": "mapping(bytes32 => uint256)"
- }
- },
- "id": 1595,
- "indexExpression": {
- "id": 1594,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1536,
- "src": "5525:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "nodeType": "IndexAccess",
- "src": "5514:15:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1596,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "add",
- "nodeType": "MemberAccess",
- "referencedDeclaration": 303,
- "src": "5514:19:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
- "typeString": "function (uint256,uint256) pure returns (uint256)"
- }
- },
- "id": 1598,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5514:27:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "src": "5496:45:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "id": 1600,
- "nodeType": "ExpressionStatement",
- "src": "5496:45:8"
- },
- {
- "eventCall": {
- "arguments": [
- {
- "id": 1602,
- "name": "UAI",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1536,
- "src": "5573:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- {
- "id": 1603,
- "name": "amount",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1534,
- "src": "5578:6:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- {
- "expression": {
- "id": 1604,
- "name": "msg",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 4294967281,
- "src": "5585:3:8",
- "typeDescriptions": {
- "typeIdentifier": "t_magic_message",
- "typeString": "msg"
- }
- },
- "id": 1605,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "memberName": "sender",
- "nodeType": "MemberAccess",
- "src": "5585:10:8",
- "typeDescriptions": {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- }
- ],
- "expression": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "id": 1601,
- "name": "TokensDepositedToAsset",
- "nodeType": "Identifier",
- "overloadedDeclarations": [],
- "referencedDeclaration": 1208,
- "src": "5550:22:8",
- "typeDescriptions": {
- "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$returns$__$",
- "typeString": "function (bytes32,uint256,address)"
- }
- },
- "id": 1606,
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "kind": "functionCall",
- "lValueRequested": false,
- "names": [],
- "nodeType": "FunctionCall",
- "src": "5550:46:8",
- "tryCall": false,
- "typeDescriptions": {
- "typeIdentifier": "t_tuple$__$",
- "typeString": "tuple()"
- }
- },
- "id": 1607,
- "nodeType": "EmitStatement",
- "src": "5545:51:8"
- }
- ]
- },
- "documentation": {
- "id": 1532,
- "nodeType": "StructuredDocumentation",
- "src": "4746:73:8",
- "text": " @dev Deposits tokens in ``amount`` to specific ``UAI``"
- },
- "functionSelector": "d15b223e",
- "id": 1609,
- "implemented": true,
- "kind": "function",
- "modifiers": [],
- "name": "depositTokens",
- "nodeType": "FunctionDefinition",
- "parameters": {
- "id": 1537,
- "nodeType": "ParameterList",
- "parameters": [
- {
- "constant": false,
- "id": 1534,
- "mutability": "mutable",
- "name": "amount",
- "nodeType": "VariableDeclaration",
- "scope": 1609,
- "src": "4848:14:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "typeName": {
- "id": 1533,
- "name": "uint256",
- "nodeType": "ElementaryTypeName",
- "src": "4848:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- },
- "visibility": "internal"
- },
- {
- "constant": false,
- "id": 1536,
- "mutability": "mutable",
- "name": "UAI",
- "nodeType": "VariableDeclaration",
- "scope": 1609,
- "src": "4864:11:8",
- "stateVariable": false,
- "storageLocation": "default",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "typeName": {
- "id": 1535,
- "name": "bytes32",
- "nodeType": "ElementaryTypeName",
- "src": "4864:7:8",
- "typeDescriptions": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- },
- "visibility": "internal"
- }
- ],
- "src": "4847:29:8"
- },
- "returnParameters": {
- "id": 1538,
- "nodeType": "ParameterList",
- "parameters": [],
- "src": "4884:0:8"
- },
- "scope": 1610,
- "src": "4825:776:8",
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- }
- ],
- "scope": 1611,
- "src": "623:4983:8"
- }
- ],
- "src": "0:5606:8"
- },
- "legacyAST": {
- "attributes": {
- "absolutePath": "project:/contracts/UAIRegistry.sol",
- "exportedSymbols": {
- "Context": [
- 815
- ],
- "DKGcontract": [
- 1138
- ],
- "IERC1155": [
- 598
- ],
- "IERC165": [
- 121
- ],
- "IERC20": [
- 676
- ],
- "IERC721": [
- 792
- ],
- "Ownable": [
- 109
- ],
- "SafeMath": [
- 476
- ],
- "UAIRegistry": [
- 1610
- ]
- }
- },
- "children": [
- {
- "attributes": {
- "literals": [
- "solidity",
- ">=",
- "0.6",
- ".0",
- "<",
- "0.8",
- ".0"
- ]
- },
- "id": 1140,
- "name": "PragmaDirective",
- "src": "0:31:8"
- },
- {
- "attributes": {
- "SourceUnit": 677,
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC20/IERC20.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1141,
- "name": "ImportDirective",
- "src": "33:64:8"
- },
- {
- "attributes": {
- "SourceUnit": 793,
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC721/IERC721.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC721/IERC721.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1142,
- "name": "ImportDirective",
- "src": "98:66:8"
- },
- {
- "attributes": {
- "SourceUnit": 599,
- "absolutePath": "openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol",
- "file": "openzeppelin-solidity/contracts/token/ERC1155/IERC1155.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1143,
- "name": "ImportDirective",
- "src": "165:68:8"
- },
- {
- "attributes": {
- "SourceUnit": 477,
- "absolutePath": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "file": "openzeppelin-solidity/contracts/math/SafeMath.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1144,
- "name": "ImportDirective",
- "src": "234:59:8"
- },
- {
- "attributes": {
- "SourceUnit": 110,
- "absolutePath": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "file": "openzeppelin-solidity/contracts/access/Ownable.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1145,
- "name": "ImportDirective",
- "src": "294:60:8"
- },
- {
- "attributes": {
- "SourceUnit": 1139,
- "absolutePath": "project:/contracts/DKGcontract.sol",
- "file": "./DKGcontract.sol",
- "scope": 1611,
- "symbolAliases": [
- null
- ],
- "unitAlias": ""
- },
- "id": 1146,
- "name": "ImportDirective",
- "src": "355:27:8"
- },
- {
- "attributes": {
- "abstract": false,
- "contractDependencies": [
- 109,
- 815
- ],
- "contractKind": "contract",
- "fullyImplemented": true,
- "linearizedBaseContracts": [
- 1610,
- 109,
- 815
- ],
- "name": "UAIRegistry",
- "scope": 1611
- },
- "children": [
- {
- "attributes": {},
- "children": [
- {
- "attributes": {
- "name": "Ownable",
- "referencedDeclaration": 109,
- "type": "contract Ownable"
- },
- "id": 1147,
- "name": "UserDefinedTypeName",
- "src": "647:7:8"
- }
- ],
- "id": 1148,
- "name": "InheritanceSpecifier",
- "src": "647:7:8"
- },
- {
- "attributes": {
- "canonicalName": "UAIRegistry.AssetType",
- "name": "AssetType"
- },
- "children": [
- {
- "attributes": {
- "name": "Native"
- },
- "id": 1149,
- "name": "EnumValue",
- "src": "677:6:8"
- },
- {
- "attributes": {
- "name": "ERC721"
- },
- "id": 1150,
- "name": "EnumValue",
- "src": "687:6:8"
- },
- {
- "attributes": {
- "name": "ERC1155"
- },
- "id": 1151,
- "name": "EnumValue",
- "src": "697:7:8"
- }
- ],
- "id": 1152,
- "name": "EnumDefinition",
- "src": "659:48:8"
- },
- {
- "children": [
- {
- "attributes": {
- "name": "SafeMath",
- "referencedDeclaration": 476,
- "type": "library SafeMath"
- },
- "id": 1153,
- "name": "UserDefinedTypeName",
- "src": "716:8:8"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1154,
- "name": "ElementaryTypeName",
- "src": "729:7:8"
- }
- ],
- "id": 1155,
- "name": "UsingForDirective",
- "src": "710:27:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "token",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "contract IERC20",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "IERC20",
- "referencedDeclaration": 676,
- "type": "contract IERC20"
- },
- "id": 1156,
- "name": "UserDefinedTypeName",
- "src": "739:6:8"
- }
- ],
- "id": 1157,
- "name": "VariableDeclaration",
- "src": "739:12:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "AssertionRegistry",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "contract DKGcontract",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "DKGcontract",
- "referencedDeclaration": 1138,
- "type": "contract DKGcontract"
- },
- "id": 1158,
- "name": "UserDefinedTypeName",
- "src": "754:11:8"
- }
- ],
- "id": 1159,
- "name": "VariableDeclaration",
- "src": "754:29:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "AssertionRegistryAddress",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1160,
- "name": "ElementaryTypeName",
- "src": "786:7:8"
- }
- ],
- "id": 1161,
- "name": "VariableDeclaration",
- "src": "786:32:8"
- },
- {
- "attributes": {
- "canonicalName": "UAIRegistry.AssetRecord",
- "name": "AssetRecord",
- "scope": 1610,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "creationTimestamp",
- "scope": 1172,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1162,
- "name": "ElementaryTypeName",
- "src": "844:7:8"
- }
- ],
- "id": 1163,
- "name": "VariableDeclaration",
- "src": "844:25:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "scope": 1172,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1164,
- "name": "ElementaryTypeName",
- "src": "873:7:8"
- }
- ],
- "id": 1165,
- "name": "VariableDeclaration",
- "src": "873:19:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_type",
- "scope": 1172,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1166,
- "name": "ElementaryTypeName",
- "src": "967:5:8"
- }
- ],
- "id": 1167,
- "name": "VariableDeclaration",
- "src": "967:11:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "controller",
- "scope": 1172,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1168,
- "name": "ElementaryTypeName",
- "src": "982:7:8"
- }
- ],
- "id": 1169,
- "name": "VariableDeclaration",
- "src": "982:18:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "scope": 1172,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1170,
- "name": "ElementaryTypeName",
- "src": "1012:7:8"
- }
- ],
- "id": 1171,
- "name": "VariableDeclaration",
- "src": "1012:23:8"
- }
- ],
- "id": 1172,
- "name": "StructDefinition",
- "src": "822:217:8"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "09600fa6",
- "mutability": "mutable",
- "name": "assetRecords",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord)",
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1173,
- "name": "ElementaryTypeName",
- "src": "1050:7:8"
- },
- {
- "attributes": {
- "name": "AssetRecord",
- "referencedDeclaration": 1172,
- "type": "struct UAIRegistry.AssetRecord"
- },
- "id": 1174,
- "name": "UserDefinedTypeName",
- "src": "1061:11:8"
- }
- ],
- "id": 1175,
- "name": "Mapping",
- "src": "1042:31:8"
- }
- ],
- "id": 1176,
- "name": "VariableDeclaration",
- "src": "1042:51:8"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "09added7",
- "mutability": "mutable",
- "name": "UAIstatus",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => bool)",
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => bool)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1177,
- "name": "ElementaryTypeName",
- "src": "1104:7:8"
- },
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1178,
- "name": "ElementaryTypeName",
- "src": "1115:4:8"
- }
- ],
- "id": 1179,
- "name": "Mapping",
- "src": "1096:24:8"
- }
- ],
- "id": 1180,
- "name": "VariableDeclaration",
- "src": "1096:41:8"
- },
- {
- "attributes": {
- "constant": false,
- "functionSelector": "34e5197b",
- "mutability": "mutable",
- "name": "assetStake",
- "scope": 1610,
- "stateVariable": true,
- "storageLocation": "default",
- "type": "mapping(bytes32 => uint256)",
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "type": "mapping(bytes32 => uint256)"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1181,
- "name": "ElementaryTypeName",
- "src": "1149:7:8"
- },
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1182,
- "name": "ElementaryTypeName",
- "src": "1160:7:8"
- }
- ],
- "id": 1183,
- "name": "Mapping",
- "src": "1141:27:8"
- }
- ],
- "id": 1184,
- "name": "VariableDeclaration",
- "src": "1141:45:8"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "UAIRegistryInit"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "assertionRegistryAddress",
- "scope": 1188,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1185,
- "name": "ElementaryTypeName",
- "src": "1226:7:8"
- }
- ],
- "id": 1186,
- "name": "VariableDeclaration",
- "src": "1226:40:8"
- }
- ],
- "id": 1187,
- "name": "ParameterList",
- "src": "1225:42:8"
- }
- ],
- "id": 1188,
- "name": "EventDefinition",
- "src": "1204:64:8"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "UAICreated"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1194,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1189,
- "name": "ElementaryTypeName",
- "src": "1287:7:8"
- }
- ],
- "id": 1190,
- "name": "VariableDeclaration",
- "src": "1287:19:8"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "scope": 1194,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1191,
- "name": "ElementaryTypeName",
- "src": "1308:7:8"
- }
- ],
- "id": 1192,
- "name": "VariableDeclaration",
- "src": "1308:31:8"
- }
- ],
- "id": 1193,
- "name": "ParameterList",
- "src": "1286:54:8"
- }
- ],
- "id": 1194,
- "name": "EventDefinition",
- "src": "1270:71:8"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "UAIUpdatedState"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1200,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1195,
- "name": "ElementaryTypeName",
- "src": "1365:7:8"
- }
- ],
- "id": 1196,
- "name": "VariableDeclaration",
- "src": "1365:19:8"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "scope": 1200,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1197,
- "name": "ElementaryTypeName",
- "src": "1386:7:8"
- }
- ],
- "id": 1198,
- "name": "VariableDeclaration",
- "src": "1386:31:8"
- }
- ],
- "id": 1199,
- "name": "ParameterList",
- "src": "1364:55:8"
- }
- ],
- "id": 1200,
- "name": "EventDefinition",
- "src": "1343:77:8"
- },
- {
- "attributes": {
- "anonymous": false,
- "name": "TokensDepositedToAsset"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1208,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1201,
- "name": "ElementaryTypeName",
- "src": "1451:7:8"
- }
- ],
- "id": 1202,
- "name": "VariableDeclaration",
- "src": "1451:19:8"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "amount",
- "scope": 1208,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1203,
- "name": "ElementaryTypeName",
- "src": "1472:7:8"
- }
- ],
- "id": 1204,
- "name": "VariableDeclaration",
- "src": "1472:22:8"
- },
- {
- "attributes": {
- "constant": false,
- "indexed": true,
- "mutability": "mutable",
- "name": "depositor",
- "scope": 1208,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1205,
- "name": "ElementaryTypeName",
- "src": "1496:7:8"
- }
- ],
- "id": 1206,
- "name": "VariableDeclaration",
- "src": "1496:25:8"
- }
- ],
- "id": 1207,
- "name": "ParameterList",
- "src": "1450:72:8"
- }
- ],
- "id": 1208,
- "name": "EventDefinition",
- "src": "1422:101:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": true,
- "kind": "constructor",
- "modifiers": [
- null
- ],
- "name": "",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tokenAddress",
- "scope": 1254,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1209,
- "name": "ElementaryTypeName",
- "src": "1538:7:8"
- }
- ],
- "id": 1210,
- "name": "VariableDeclaration",
- "src": "1538:20:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionRegistryAddress",
- "scope": 1254,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1211,
- "name": "ElementaryTypeName",
- "src": "1560:7:8"
- }
- ],
- "id": 1212,
- "name": "VariableDeclaration",
- "src": "1560:32:8"
- }
- ],
- "id": 1213,
- "name": "ParameterList",
- "src": "1537:56:8"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 1214,
- "name": "ParameterList",
- "src": "1602:0:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool) pure",
- "value": "require"
- },
- "id": 1215,
- "name": "Identifier",
- "src": "1606:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1210,
- "type": "address",
- "value": "tokenAddress"
- },
- "id": 1216,
- "name": "Identifier",
- "src": "1614:12:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 1217,
- "name": "ElementaryTypeName",
- "src": "1628:7:8"
- }
- ],
- "id": 1218,
- "name": "ElementaryTypeNameExpression",
- "src": "1628:7:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1219,
- "name": "Literal",
- "src": "1636:1:8"
- }
- ],
- "id": 1220,
- "name": "FunctionCall",
- "src": "1628:10:8"
- }
- ],
- "id": 1221,
- "name": "BinaryOperation",
- "src": "1614:24:8"
- }
- ],
- "id": 1222,
- "name": "FunctionCall",
- "src": "1606:33:8"
- }
- ],
- "id": 1223,
- "name": "ExpressionStatement",
- "src": "1606:33:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool) pure",
- "value": "require"
- },
- "id": 1224,
- "name": "Identifier",
- "src": "1643:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1212,
- "type": "address",
- "value": "assertionRegistryAddress"
- },
- "id": 1225,
- "name": "Identifier",
- "src": "1651:24:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address payable",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_rational_0_by_1",
- "typeString": "int_const 0"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 1226,
- "name": "ElementaryTypeName",
- "src": "1677:7:8"
- }
- ],
- "id": 1227,
- "name": "ElementaryTypeNameExpression",
- "src": "1677:7:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1228,
- "name": "Literal",
- "src": "1685:1:8"
- }
- ],
- "id": 1229,
- "name": "FunctionCall",
- "src": "1677:10:8"
- }
- ],
- "id": 1230,
- "name": "BinaryOperation",
- "src": "1651:36:8"
- }
- ],
- "id": 1231,
- "name": "FunctionCall",
- "src": "1643:45:8"
- }
- ],
- "id": 1232,
- "name": "ExpressionStatement",
- "src": "1643:45:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "contract IERC20"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1157,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 1233,
- "name": "Identifier",
- "src": "1693:5:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "contract IERC20",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 676,
- "type": "type(contract IERC20)",
- "value": "IERC20"
- },
- "id": 1234,
- "name": "Identifier",
- "src": "1701:6:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1210,
- "type": "address",
- "value": "tokenAddress"
- },
- "id": 1235,
- "name": "Identifier",
- "src": "1708:12:8"
- }
- ],
- "id": 1236,
- "name": "FunctionCall",
- "src": "1701:20:8"
- }
- ],
- "id": 1237,
- "name": "Assignment",
- "src": "1693:28:8"
- }
- ],
- "id": 1238,
- "name": "ExpressionStatement",
- "src": "1693:28:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1161,
- "type": "address",
- "value": "AssertionRegistryAddress"
- },
- "id": 1239,
- "name": "Identifier",
- "src": "1725:24:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1212,
- "type": "address",
- "value": "assertionRegistryAddress"
- },
- "id": 1240,
- "name": "Identifier",
- "src": "1752:24:8"
- }
- ],
- "id": 1241,
- "name": "Assignment",
- "src": "1725:51:8"
- }
- ],
- "id": 1242,
- "name": "ExpressionStatement",
- "src": "1725:51:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "contract DKGcontract"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1159,
- "type": "contract DKGcontract",
- "value": "AssertionRegistry"
- },
- "id": 1243,
- "name": "Identifier",
- "src": "1780:17:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "contract DKGcontract",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1138,
- "type": "type(contract DKGcontract)",
- "value": "DKGcontract"
- },
- "id": 1244,
- "name": "Identifier",
- "src": "1800:11:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1212,
- "type": "address",
- "value": "assertionRegistryAddress"
- },
- "id": 1245,
- "name": "Identifier",
- "src": "1812:24:8"
- }
- ],
- "id": 1246,
- "name": "FunctionCall",
- "src": "1800:37:8"
- }
- ],
- "id": 1247,
- "name": "Assignment",
- "src": "1780:57:8"
- }
- ],
- "id": 1248,
- "name": "ExpressionStatement",
- "src": "1780:57:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1188,
- "type": "function (address)",
- "value": "UAIRegistryInit"
- },
- "id": 1249,
- "name": "Identifier",
- "src": "1846:15:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1212,
- "type": "address",
- "value": "assertionRegistryAddress"
- },
- "id": 1250,
- "name": "Identifier",
- "src": "1862:24:8"
- }
- ],
- "id": 1251,
- "name": "FunctionCall",
- "src": "1846:41:8"
- }
- ],
- "id": 1252,
- "name": "EmitStatement",
- "src": "1841:46:8"
- }
- ],
- "id": 1253,
- "name": "Block",
- "src": "1602:289:8"
- }
- ],
- "id": 1254,
- "name": "FunctionDefinition",
- "src": "1526:365:8"
- },
- {
- "attributes": {
- "functionSelector": "78e98392",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "registerAsset",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1255,
- "name": "ElementaryTypeName",
- "src": "1917:7:8"
- }
- ],
- "id": 1256,
- "name": "VariableDeclaration",
- "src": "1917:11:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "_type",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1257,
- "name": "ElementaryTypeName",
- "src": "1930:5:8"
- }
- ],
- "id": 1258,
- "name": "VariableDeclaration",
- "src": "1930:11:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1259,
- "name": "ElementaryTypeName",
- "src": "1943:7:8"
- }
- ],
- "id": 1260,
- "name": "VariableDeclaration",
- "src": "1943:19:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1261,
- "name": "ElementaryTypeName",
- "src": "1964:7:8"
- }
- ],
- "id": 1262,
- "name": "VariableDeclaration",
- "src": "1964:23:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1263,
- "name": "ElementaryTypeName",
- "src": "1989:7:8"
- }
- ],
- "id": 1264,
- "name": "VariableDeclaration",
- "src": "1989:16:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "tokenAmount",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1265,
- "name": "ElementaryTypeName",
- "src": "2007:7:8"
- }
- ],
- "id": 1266,
- "name": "VariableDeclaration",
- "src": "2007:19:8"
- }
- ],
- "id": 1267,
- "name": "ParameterList",
- "src": "1916:111:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "scope": 1372,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1268,
- "name": "ElementaryTypeName",
- "src": "2044:7:8"
- }
- ],
- "id": 1269,
- "name": "VariableDeclaration",
- "src": "2044:7:8"
- }
- ],
- "id": 1270,
- "name": "ParameterList",
- "src": "2043:9:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1271,
- "name": "Identifier",
- "src": "2057:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1272,
- "name": "Identifier",
- "src": "2065:3:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1273,
- "name": "Literal",
- "src": "2070:1:8"
- }
- ],
- "id": 1274,
- "name": "BinaryOperation",
- "src": "2065:6:8"
- },
- {
- "attributes": {
- "hexvalue": "5541492063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"UAI cannot be zero\"",
- "value": "UAI cannot be zero"
- },
- "id": 1275,
- "name": "Literal",
- "src": "2073:20:8"
- }
- ],
- "id": 1276,
- "name": "FunctionCall",
- "src": "2057:37:8"
- }
- ],
- "id": 1277,
- "name": "ExpressionStatement",
- "src": "2057:37:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_cf25b7c40ac58b98472d8ae4b6b8703daef3920dd8a8c2b2556b411059eb30d4",
- "typeString": "literal_string \"_type allowed values: 0,1,2 (WIP)\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1278,
- "name": "Identifier",
- "src": "2098:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint8",
- "typeString": "uint8"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "<",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1258,
- "type": "uint8",
- "value": "_type"
- },
- "id": 1279,
- "name": "Identifier",
- "src": "2106:5:8"
- },
- {
- "attributes": {
- "hexvalue": "33",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 3",
- "value": "3"
- },
- "id": 1280,
- "name": "Literal",
- "src": "2114:1:8"
- }
- ],
- "id": 1281,
- "name": "BinaryOperation",
- "src": "2106:9:8"
- },
- {
- "attributes": {
- "hexvalue": "5f7479706520616c6c6f7765642076616c7565733a20302c312c32202857495029",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"_type allowed values: 0,1,2 (WIP)\"",
- "value": "_type allowed values: 0,1,2 (WIP)"
- },
- "id": 1282,
- "name": "Literal",
- "src": "2117:35:8"
- }
- ],
- "id": 1283,
- "name": "FunctionCall",
- "src": "2098:55:8"
- }
- ],
- "id": 1284,
- "name": "ExpressionStatement",
- "src": "2098:55:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_889a93080df6c407ecf58a36aecc1ba986f5889f8941567948da9184911b568f",
- "typeString": "literal_string \"alsoKnownAs cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1285,
- "name": "Identifier",
- "src": "2157:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1260,
- "type": "bytes32",
- "value": "alsoKnownAs"
- },
- "id": 1286,
- "name": "Identifier",
- "src": "2165:11:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1287,
- "name": "Literal",
- "src": "2178:1:8"
- }
- ],
- "id": 1288,
- "name": "BinaryOperation",
- "src": "2165:14:8"
- },
- {
- "attributes": {
- "hexvalue": "616c736f4b6e6f776e41732063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"alsoKnownAs cannot be zero\"",
- "value": "alsoKnownAs cannot be zero"
- },
- "id": 1289,
- "name": "Literal",
- "src": "2181:28:8"
- }
- ],
- "id": 1290,
- "name": "FunctionCall",
- "src": "2157:53:8"
- }
- ],
- "id": 1291,
- "name": "ExpressionStatement",
- "src": "2157:53:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_f0caaefff46a6fa6373daf0acae33c6a0d7f130841550573dc0a5b0fb9ec40cc",
- "typeString": "literal_string \"stateCommitHash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1292,
- "name": "Identifier",
- "src": "2214:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1262,
- "type": "bytes32",
- "value": "stateCommitHash"
- },
- "id": 1293,
- "name": "Identifier",
- "src": "2222:15:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1294,
- "name": "Literal",
- "src": "2239:1:8"
- }
- ],
- "id": 1295,
- "name": "BinaryOperation",
- "src": "2222:18:8"
- },
- {
- "attributes": {
- "hexvalue": "7374617465436f6d6d6974486173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"stateCommitHash cannot be zero\"",
- "value": "stateCommitHash cannot be zero"
- },
- "id": 1296,
- "name": "Literal",
- "src": "2242:32:8"
- }
- ],
- "id": 1297,
- "name": "FunctionCall",
- "src": "2214:61:8"
- }
- ],
- "id": 1298,
- "name": "ExpressionStatement",
- "src": "2214:61:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool) pure",
- "value": "require"
- },
- "id": 1299,
- "name": "Identifier",
- "src": "2279:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1180,
- "type": "mapping(bytes32 => bool)",
- "value": "UAIstatus"
- },
- "id": 1300,
- "name": "Identifier",
- "src": "2287:9:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1301,
- "name": "Identifier",
- "src": "2297:3:8"
- }
- ],
- "id": 1302,
- "name": "IndexAccess",
- "src": "2287:14:8"
- },
- {
- "attributes": {
- "hexvalue": "66616c7365",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "bool",
- "type": "bool",
- "value": "false"
- },
- "id": 1303,
- "name": "Literal",
- "src": "2305:5:8"
- }
- ],
- "id": 1304,
- "name": "BinaryOperation",
- "src": "2287:23:8"
- }
- ],
- "id": 1305,
- "name": "FunctionCall",
- "src": "2279:33:8"
- }
- ],
- "id": 1306,
- "name": "ExpressionStatement",
- "src": "2279:33:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "createAssertionRecord",
- "referencedDeclaration": 1015,
- "type": "function (bytes32,bytes32,address,uint256,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1159,
- "type": "contract DKGcontract",
- "value": "AssertionRegistry"
- },
- "id": 1307,
- "name": "Identifier",
- "src": "2472:17:8"
- }
- ],
- "id": 1309,
- "name": "MemberAccess",
- "src": "2472:39:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1262,
- "type": "bytes32",
- "value": "stateCommitHash"
- },
- "id": 1310,
- "name": "Identifier",
- "src": "2512:15:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1264,
- "type": "bytes32",
- "value": "rootHash"
- },
- "id": 1311,
- "name": "Identifier",
- "src": "2529:8:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 1312,
- "name": "ElementaryTypeName",
- "src": "2539:7:8"
- }
- ],
- "id": 1313,
- "name": "ElementaryTypeNameExpression",
- "src": "2539:7:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1314,
- "name": "Identifier",
- "src": "2547:3:8"
- }
- ],
- "id": 1315,
- "name": "MemberAccess",
- "src": "2547:10:8"
- }
- ],
- "id": 1316,
- "name": "FunctionCall",
- "src": "2539:19:8"
- },
- {
- "attributes": {
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1317,
- "name": "Literal",
- "src": "2560:1:8"
- },
- {
- "attributes": {
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1318,
- "name": "Literal",
- "src": "2563:1:8"
- }
- ],
- "id": 1319,
- "name": "FunctionCall",
- "src": "2472:93:8"
- }
- ],
- "id": 1320,
- "name": "ExpressionStatement",
- "src": "2472:93:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "stateCommitHash",
- "referencedDeclaration": 1171,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1321,
- "name": "Identifier",
- "src": "2613:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1322,
- "name": "Identifier",
- "src": "2626:3:8"
- }
- ],
- "id": 1323,
- "name": "IndexAccess",
- "src": "2613:17:8"
- }
- ],
- "id": 1324,
- "name": "MemberAccess",
- "src": "2613:33:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1262,
- "type": "bytes32",
- "value": "stateCommitHash"
- },
- "id": 1325,
- "name": "Identifier",
- "src": "2649:15:8"
- }
- ],
- "id": 1326,
- "name": "Assignment",
- "src": "2613:51:8"
- }
- ],
- "id": 1327,
- "name": "ExpressionStatement",
- "src": "2613:51:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "_type",
- "referencedDeclaration": 1167,
- "type": "uint8"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1328,
- "name": "Identifier",
- "src": "2668:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1329,
- "name": "Identifier",
- "src": "2681:3:8"
- }
- ],
- "id": 1330,
- "name": "IndexAccess",
- "src": "2668:17:8"
- }
- ],
- "id": 1331,
- "name": "MemberAccess",
- "src": "2668:23:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1258,
- "type": "uint8",
- "value": "_type"
- },
- "id": 1332,
- "name": "Identifier",
- "src": "2694:5:8"
- }
- ],
- "id": 1333,
- "name": "Assignment",
- "src": "2668:31:8"
- }
- ],
- "id": 1334,
- "name": "ExpressionStatement",
- "src": "2668:31:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "alsoKnownAs",
- "referencedDeclaration": 1165,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1335,
- "name": "Identifier",
- "src": "2703:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1336,
- "name": "Identifier",
- "src": "2716:3:8"
- }
- ],
- "id": 1337,
- "name": "IndexAccess",
- "src": "2703:17:8"
- }
- ],
- "id": 1338,
- "name": "MemberAccess",
- "src": "2703:29:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1260,
- "type": "bytes32",
- "value": "alsoKnownAs"
- },
- "id": 1339,
- "name": "Identifier",
- "src": "2735:11:8"
- }
- ],
- "id": 1340,
- "name": "Assignment",
- "src": "2703:43:8"
- }
- ],
- "id": 1341,
- "name": "ExpressionStatement",
- "src": "2703:43:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "controller",
- "referencedDeclaration": 1169,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1342,
- "name": "Identifier",
- "src": "2750:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1343,
- "name": "Identifier",
- "src": "2763:3:8"
- }
- ],
- "id": 1344,
- "name": "IndexAccess",
- "src": "2750:17:8"
- }
- ],
- "id": 1345,
- "name": "MemberAccess",
- "src": "2750:28:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1346,
- "name": "Identifier",
- "src": "2781:3:8"
- }
- ],
- "id": 1347,
- "name": "MemberAccess",
- "src": "2781:10:8"
- }
- ],
- "id": 1348,
- "name": "Assignment",
- "src": "2750:41:8"
- }
- ],
- "id": 1349,
- "name": "ExpressionStatement",
- "src": "2750:41:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "creationTimestamp",
- "referencedDeclaration": 1163,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1350,
- "name": "Identifier",
- "src": "2847:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1351,
- "name": "Identifier",
- "src": "2860:3:8"
- }
- ],
- "id": 1352,
- "name": "IndexAccess",
- "src": "2847:17:8"
- }
- ],
- "id": 1353,
- "name": "MemberAccess",
- "src": "2847:35:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "timestamp",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967292,
- "type": "block",
- "value": "block"
- },
- "id": 1354,
- "name": "Identifier",
- "src": "2885:5:8"
- }
- ],
- "id": 1355,
- "name": "MemberAccess",
- "src": "2885:15:8"
- }
- ],
- "id": 1356,
- "name": "Assignment",
- "src": "2847:53:8"
- }
- ],
- "id": 1357,
- "name": "ExpressionStatement",
- "src": "2847:53:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1180,
- "type": "mapping(bytes32 => bool)",
- "value": "UAIstatus"
- },
- "id": 1358,
- "name": "Identifier",
- "src": "2904:9:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1359,
- "name": "Identifier",
- "src": "2914:3:8"
- }
- ],
- "id": 1360,
- "name": "IndexAccess",
- "src": "2904:14:8"
- },
- {
- "attributes": {
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1361,
- "name": "Literal",
- "src": "2921:4:8"
- }
- ],
- "id": 1362,
- "name": "Assignment",
- "src": "2904:21:8"
- }
- ],
- "id": 1363,
- "name": "ExpressionStatement",
- "src": "2904:21:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1194,
- "type": "function (bytes32,bytes32)",
- "value": "UAICreated"
- },
- "id": 1364,
- "name": "Identifier",
- "src": "2935:10:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1365,
- "name": "Identifier",
- "src": "2946:3:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1262,
- "type": "bytes32",
- "value": "stateCommitHash"
- },
- "id": 1366,
- "name": "Identifier",
- "src": "2951:15:8"
- }
- ],
- "id": 1367,
- "name": "FunctionCall",
- "src": "2935:32:8"
- }
- ],
- "id": 1368,
- "name": "EmitStatement",
- "src": "2930:37:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 1270
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1256,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1369,
- "name": "Identifier",
- "src": "2979:3:8"
- }
- ],
- "id": 1370,
- "name": "Return",
- "src": "2972:10:8"
- }
- ],
- "id": 1371,
- "name": "Block",
- "src": "2052:934:8"
- }
- ],
- "id": 1372,
- "name": "FunctionDefinition",
- "src": "1894:1092:8"
- },
- {
- "attributes": {
- "functionSelector": "a9cd6a2d",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "updateAssetState",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1440,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1373,
- "name": "ElementaryTypeName",
- "src": "3017:7:8"
- }
- ],
- "id": 1374,
- "name": "VariableDeclaration",
- "src": "3017:11:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "newStateCommitHash",
- "scope": 1440,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1375,
- "name": "ElementaryTypeName",
- "src": "3030:7:8"
- }
- ],
- "id": 1376,
- "name": "VariableDeclaration",
- "src": "3030:26:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "rootHash",
- "scope": 1440,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1377,
- "name": "ElementaryTypeName",
- "src": "3058:7:8"
- }
- ],
- "id": 1378,
- "name": "VariableDeclaration",
- "src": "3058:16:8"
- }
- ],
- "id": 1379,
- "name": "ParameterList",
- "src": "3016:59:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "scope": 1440,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1380,
- "name": "ElementaryTypeName",
- "src": "3092:7:8"
- }
- ],
- "id": 1381,
- "name": "VariableDeclaration",
- "src": "3092:7:8"
- }
- ],
- "id": 1382,
- "name": "ParameterList",
- "src": "3091:9:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8113bcaef69ad64d629f9f9842e44c0195bbec12498295833c352197bdf09d1b",
- "typeString": "literal_string \"UAI cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1383,
- "name": "Identifier",
- "src": "3106:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1384,
- "name": "Identifier",
- "src": "3114:3:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1385,
- "name": "Literal",
- "src": "3119:1:8"
- }
- ],
- "id": 1386,
- "name": "BinaryOperation",
- "src": "3114:6:8"
- },
- {
- "attributes": {
- "hexvalue": "5541492063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"UAI cannot be zero\"",
- "value": "UAI cannot be zero"
- },
- "id": 1387,
- "name": "Literal",
- "src": "3122:20:8"
- }
- ],
- "id": 1388,
- "name": "FunctionCall",
- "src": "3106:37:8"
- }
- ],
- "id": 1389,
- "name": "ExpressionStatement",
- "src": "3106:37:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_1288ba10f0c0a9fa84e2f581ad61c72d898b048e206b52821e5663686f23ff37",
- "typeString": "literal_string \"Asset must exist\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1390,
- "name": "Identifier",
- "src": "3147:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1180,
- "type": "mapping(bytes32 => bool)",
- "value": "UAIstatus"
- },
- "id": 1391,
- "name": "Identifier",
- "src": "3155:9:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1392,
- "name": "Identifier",
- "src": "3165:3:8"
- }
- ],
- "id": 1393,
- "name": "IndexAccess",
- "src": "3155:14:8"
- },
- {
- "attributes": {
- "hexvalue": "74727565",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "bool",
- "type": "bool",
- "value": "true"
- },
- "id": 1394,
- "name": "Literal",
- "src": "3173:4:8"
- }
- ],
- "id": 1395,
- "name": "BinaryOperation",
- "src": "3155:22:8"
- },
- {
- "attributes": {
- "hexvalue": "4173736574206d757374206578697374",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Asset must exist\"",
- "value": "Asset must exist"
- },
- "id": 1396,
- "name": "Literal",
- "src": "3179:18:8"
- }
- ],
- "id": 1397,
- "name": "FunctionCall",
- "src": "3147:52:8"
- }
- ],
- "id": 1398,
- "name": "ExpressionStatement",
- "src": "3147:52:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_fa287c795401a9447e9af39b3f60c2649bae99888868237daa5c7cc28744941b",
- "typeString": "literal_string \"newStateCommitHash cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1399,
- "name": "Identifier",
- "src": "3203:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "!=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1376,
- "type": "bytes32",
- "value": "newStateCommitHash"
- },
- "id": 1400,
- "name": "Identifier",
- "src": "3211:18:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1401,
- "name": "Literal",
- "src": "3231:1:8"
- }
- ],
- "id": 1402,
- "name": "BinaryOperation",
- "src": "3211:21:8"
- },
- {
- "attributes": {
- "hexvalue": "6e65775374617465436f6d6d6974486173682063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"newStateCommitHash cannot be zero\"",
- "value": "newStateCommitHash cannot be zero"
- },
- "id": 1403,
- "name": "Literal",
- "src": "3234:35:8"
- }
- ],
- "id": 1404,
- "name": "FunctionCall",
- "src": "3203:67:8"
- }
- ],
- "id": 1405,
- "name": "ExpressionStatement",
- "src": "3203:67:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool) pure",
- "value": "require"
- },
- "id": 1406,
- "name": "Identifier",
- "src": "3274:7:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1531,
- "type": "function (bytes32,address) returns (bool)",
- "value": "isOwner"
- },
- "id": 1407,
- "name": "Identifier",
- "src": "3282:7:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1408,
- "name": "Identifier",
- "src": "3290:3:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1409,
- "name": "Identifier",
- "src": "3294:3:8"
- }
- ],
- "id": 1410,
- "name": "MemberAccess",
- "src": "3294:10:8"
- }
- ],
- "id": 1411,
- "name": "FunctionCall",
- "src": "3282:23:8"
- }
- ],
- "id": 1412,
- "name": "FunctionCall",
- "src": "3274:32:8"
- }
- ],
- "id": 1413,
- "name": "ExpressionStatement",
- "src": "3274:32:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- },
- {
- "typeIdentifier": "t_rational_1_by_1",
- "typeString": "int_const 1"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "createAssertionRecord",
- "referencedDeclaration": 1015,
- "type": "function (bytes32,bytes32,address,uint256,uint256) external"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1159,
- "type": "contract DKGcontract",
- "value": "AssertionRegistry"
- },
- "id": 1414,
- "name": "Identifier",
- "src": "3313:17:8"
- }
- ],
- "id": 1416,
- "name": "MemberAccess",
- "src": "3313:39:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1376,
- "type": "bytes32",
- "value": "newStateCommitHash"
- },
- "id": 1417,
- "name": "Identifier",
- "src": "3353:18:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1378,
- "type": "bytes32",
- "value": "rootHash"
- },
- "id": 1418,
- "name": "Identifier",
- "src": "3373:8:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1419,
- "name": "Identifier",
- "src": "3383:3:8"
- }
- ],
- "id": 1420,
- "name": "MemberAccess",
- "src": "3383:10:8"
- },
- {
- "attributes": {
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1421,
- "name": "Literal",
- "src": "3395:1:8"
- },
- {
- "attributes": {
- "hexvalue": "31",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 1",
- "value": "1"
- },
- "id": 1422,
- "name": "Literal",
- "src": "3398:1:8"
- }
- ],
- "id": 1423,
- "name": "FunctionCall",
- "src": "3313:87:8"
- }
- ],
- "id": 1424,
- "name": "ExpressionStatement",
- "src": "3313:87:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "member_name": "stateCommitHash",
- "referencedDeclaration": 1171,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1425,
- "name": "Identifier",
- "src": "3414:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1426,
- "name": "Identifier",
- "src": "3427:3:8"
- }
- ],
- "id": 1427,
- "name": "IndexAccess",
- "src": "3414:17:8"
- }
- ],
- "id": 1428,
- "name": "MemberAccess",
- "src": "3414:33:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1376,
- "type": "bytes32",
- "value": "newStateCommitHash"
- },
- "id": 1429,
- "name": "Identifier",
- "src": "3451:18:8"
- }
- ],
- "id": 1430,
- "name": "Assignment",
- "src": "3414:55:8"
- }
- ],
- "id": 1431,
- "name": "ExpressionStatement",
- "src": "3414:55:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1200,
- "type": "function (bytes32,bytes32)",
- "value": "UAIUpdatedState"
- },
- "id": 1432,
- "name": "Identifier",
- "src": "3518:15:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1433,
- "name": "Identifier",
- "src": "3534:3:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1376,
- "type": "bytes32",
- "value": "newStateCommitHash"
- },
- "id": 1434,
- "name": "Identifier",
- "src": "3539:18:8"
- }
- ],
- "id": 1435,
- "name": "FunctionCall",
- "src": "3518:40:8"
- }
- ],
- "id": 1436,
- "name": "EmitStatement",
- "src": "3513:45:8"
- },
- {
- "attributes": {
- "functionReturnParameters": 1382
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1374,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1437,
- "name": "Identifier",
- "src": "3570:3:8"
- }
- ],
- "id": 1438,
- "name": "Return",
- "src": "3563:10:8"
- }
- ],
- "id": 1439,
- "name": "Block",
- "src": "3101:476:8"
- }
- ],
- "id": 1440,
- "name": "FunctionDefinition",
- "src": "2991:586:8"
- },
- {
- "attributes": {
- "functionSelector": "52569b9d",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssetStateCommitHash",
- "scope": 1610,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1453,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1441,
- "name": "ElementaryTypeName",
- "src": "3626:7:8"
- }
- ],
- "id": 1442,
- "name": "VariableDeclaration",
- "src": "3626:11:8"
- }
- ],
- "id": 1443,
- "name": "ParameterList",
- "src": "3625:13:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "stateCommitHash",
- "scope": 1453,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1444,
- "name": "ElementaryTypeName",
- "src": "3659:7:8"
- }
- ],
- "id": 1445,
- "name": "VariableDeclaration",
- "src": "3659:23:8"
- }
- ],
- "id": 1446,
- "name": "ParameterList",
- "src": "3658:25:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1446
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "stateCommitHash",
- "referencedDeclaration": 1171,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1447,
- "name": "Identifier",
- "src": "3694:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1442,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1448,
- "name": "Identifier",
- "src": "3707:3:8"
- }
- ],
- "id": 1449,
- "name": "IndexAccess",
- "src": "3694:17:8"
- }
- ],
- "id": 1450,
- "name": "MemberAccess",
- "src": "3694:33:8"
- }
- ],
- "id": 1451,
- "name": "Return",
- "src": "3687:40:8"
- }
- ],
- "id": 1452,
- "name": "Block",
- "src": "3683:48:8"
- }
- ],
- "id": 1453,
- "name": "FunctionDefinition",
- "src": "3593:138:8"
- },
- {
- "attributes": {
- "functionSelector": "77636d1d",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssetController",
- "scope": 1610,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1466,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1454,
- "name": "ElementaryTypeName",
- "src": "3762:7:8"
- }
- ],
- "id": 1455,
- "name": "VariableDeclaration",
- "src": "3762:11:8"
- }
- ],
- "id": 1456,
- "name": "ParameterList",
- "src": "3761:13:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "controller",
- "scope": 1466,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1457,
- "name": "ElementaryTypeName",
- "src": "3795:7:8"
- }
- ],
- "id": 1458,
- "name": "VariableDeclaration",
- "src": "3795:18:8"
- }
- ],
- "id": 1459,
- "name": "ParameterList",
- "src": "3794:20:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1459
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "controller",
- "referencedDeclaration": 1169,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1460,
- "name": "Identifier",
- "src": "3825:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1455,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1461,
- "name": "Identifier",
- "src": "3838:3:8"
- }
- ],
- "id": 1462,
- "name": "IndexAccess",
- "src": "3825:17:8"
- }
- ],
- "id": 1463,
- "name": "MemberAccess",
- "src": "3825:28:8"
- }
- ],
- "id": 1464,
- "name": "Return",
- "src": "3818:35:8"
- }
- ],
- "id": 1465,
- "name": "Block",
- "src": "3814:43:8"
- }
- ],
- "id": 1466,
- "name": "FunctionDefinition",
- "src": "3734:123:8"
- },
- {
- "attributes": {
- "functionSelector": "6f3a9229",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssetAKA",
- "scope": 1610,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1479,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1467,
- "name": "ElementaryTypeName",
- "src": "3881:7:8"
- }
- ],
- "id": 1468,
- "name": "VariableDeclaration",
- "src": "3881:11:8"
- }
- ],
- "id": 1469,
- "name": "ParameterList",
- "src": "3880:13:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "alsoKnownAs",
- "scope": 1479,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1470,
- "name": "ElementaryTypeName",
- "src": "3914:7:8"
- }
- ],
- "id": 1471,
- "name": "VariableDeclaration",
- "src": "3914:19:8"
- }
- ],
- "id": 1472,
- "name": "ParameterList",
- "src": "3913:21:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1472
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "alsoKnownAs",
- "referencedDeclaration": 1165,
- "type": "bytes32"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1473,
- "name": "Identifier",
- "src": "3945:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1468,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1474,
- "name": "Identifier",
- "src": "3958:3:8"
- }
- ],
- "id": 1475,
- "name": "IndexAccess",
- "src": "3945:17:8"
- }
- ],
- "id": 1476,
- "name": "MemberAccess",
- "src": "3945:29:8"
- }
- ],
- "id": 1477,
- "name": "Return",
- "src": "3938:36:8"
- }
- ],
- "id": 1478,
- "name": "Block",
- "src": "3934:44:8"
- }
- ],
- "id": 1479,
- "name": "FunctionDefinition",
- "src": "3860:118:8"
- },
- {
- "attributes": {
- "functionSelector": "7f58afc8",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssetCreationTimestamp",
- "scope": 1610,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1492,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1480,
- "name": "ElementaryTypeName",
- "src": "4016:7:8"
- }
- ],
- "id": 1481,
- "name": "VariableDeclaration",
- "src": "4016:11:8"
- }
- ],
- "id": 1482,
- "name": "ParameterList",
- "src": "4015:13:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "creationTimestamp",
- "scope": 1492,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1483,
- "name": "ElementaryTypeName",
- "src": "4049:7:8"
- }
- ],
- "id": 1484,
- "name": "VariableDeclaration",
- "src": "4049:25:8"
- }
- ],
- "id": 1485,
- "name": "ParameterList",
- "src": "4048:27:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1485
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "creationTimestamp",
- "referencedDeclaration": 1163,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1486,
- "name": "Identifier",
- "src": "4086:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1481,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1487,
- "name": "Identifier",
- "src": "4099:3:8"
- }
- ],
- "id": 1488,
- "name": "IndexAccess",
- "src": "4086:17:8"
- }
- ],
- "id": 1489,
- "name": "MemberAccess",
- "src": "4086:35:8"
- }
- ],
- "id": 1490,
- "name": "Return",
- "src": "4079:42:8"
- }
- ],
- "id": 1491,
- "name": "Block",
- "src": "4075:50:8"
- }
- ],
- "id": 1492,
- "name": "FunctionDefinition",
- "src": "3981:144:8"
- },
- {
- "attributes": {
- "functionSelector": "2f1704bc",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "getAssertionRegistry",
- "scope": 1610,
- "stateMutability": "view",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 1493,
- "name": "ParameterList",
- "src": "4157:2:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "assertionRegistry",
- "scope": 1500,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1494,
- "name": "ElementaryTypeName",
- "src": "4180:7:8"
- }
- ],
- "id": 1495,
- "name": "VariableDeclaration",
- "src": "4180:25:8"
- }
- ],
- "id": 1496,
- "name": "ParameterList",
- "src": "4179:27:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1496
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1161,
- "type": "address",
- "value": "AssertionRegistryAddress"
- },
- "id": 1497,
- "name": "Identifier",
- "src": "4217:24:8"
- }
- ],
- "id": 1498,
- "name": "Return",
- "src": "4210:31:8"
- }
- ],
- "id": 1499,
- "name": "Block",
- "src": "4206:39:8"
- }
- ],
- "id": 1500,
- "name": "FunctionDefinition",
- "src": "4128:117:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "determineType",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Should determine type of ``contractAddress``, if possible, returning enum AssetType"
- },
- "id": 1501,
- "name": "StructuredDocumentation",
- "src": "4263:107:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "contractAddress",
- "scope": 1513,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1502,
- "name": "ElementaryTypeName",
- "src": "4399:7:8"
- }
- ],
- "id": 1503,
- "name": "VariableDeclaration",
- "src": "4399:23:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "id",
- "scope": 1513,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1504,
- "name": "ElementaryTypeName",
- "src": "4424:7:8"
- }
- ],
- "id": 1505,
- "name": "VariableDeclaration",
- "src": "4424:10:8"
- }
- ],
- "id": 1506,
- "name": "ParameterList",
- "src": "4398:37:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "scope": 1513,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint8",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint8",
- "type": "uint8"
- },
- "id": 1507,
- "name": "ElementaryTypeName",
- "src": "4454:5:8"
- }
- ],
- "id": 1508,
- "name": "VariableDeclaration",
- "src": "4454:5:8"
- }
- ],
- "id": 1509,
- "name": "ParameterList",
- "src": "4453:7:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1509
- },
- "children": [
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1510,
- "name": "Literal",
- "src": "4471:1:8"
- }
- ],
- "id": 1511,
- "name": "Return",
- "src": "4464:8:8"
- }
- ],
- "id": 1512,
- "name": "Block",
- "src": "4460:62:8"
- }
- ],
- "id": 1513,
- "name": "FunctionDefinition",
- "src": "4376:146:8"
- },
- {
- "attributes": {
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "isOwner",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Returns bool checking if ``owner`` is controller of ``UAI``"
- },
- "id": 1514,
- "name": "StructuredDocumentation",
- "src": "4525:83:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1531,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1515,
- "name": "ElementaryTypeName",
- "src": "4631:7:8"
- }
- ],
- "id": 1516,
- "name": "VariableDeclaration",
- "src": "4631:11:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "owner",
- "scope": 1531,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "address",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "address",
- "stateMutability": "nonpayable",
- "type": "address"
- },
- "id": 1517,
- "name": "ElementaryTypeName",
- "src": "4644:7:8"
- }
- ],
- "id": 1518,
- "name": "VariableDeclaration",
- "src": "4644:13:8"
- }
- ],
- "id": 1519,
- "name": "ParameterList",
- "src": "4630:28:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "",
- "scope": 1531,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1520,
- "name": "ElementaryTypeName",
- "src": "4677:4:8"
- }
- ],
- "id": 1521,
- "name": "VariableDeclaration",
- "src": "4677:4:8"
- }
- ],
- "id": 1522,
- "name": "ParameterList",
- "src": "4676:6:8"
- },
- {
- "children": [
- {
- "attributes": {
- "functionReturnParameters": 1522
- },
- "children": [
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "==",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1518,
- "type": "address",
- "value": "owner"
- },
- "id": 1523,
- "name": "Identifier",
- "src": "4698:5:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "controller",
- "referencedDeclaration": 1169,
- "type": "address"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "struct UAIRegistry.AssetRecord storage ref"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1176,
- "type": "mapping(bytes32 => struct UAIRegistry.AssetRecord storage ref)",
- "value": "assetRecords"
- },
- "id": 1524,
- "name": "Identifier",
- "src": "4707:12:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1516,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1525,
- "name": "Identifier",
- "src": "4720:3:8"
- }
- ],
- "id": 1526,
- "name": "IndexAccess",
- "src": "4707:17:8"
- }
- ],
- "id": 1527,
- "name": "MemberAccess",
- "src": "4707:28:8"
- }
- ],
- "id": 1528,
- "name": "BinaryOperation",
- "src": "4698:37:8"
- }
- ],
- "id": 1529,
- "name": "Return",
- "src": "4691:44:8"
- }
- ],
- "id": 1530,
- "name": "Block",
- "src": "4683:60:8"
- }
- ],
- "id": 1531,
- "name": "FunctionDefinition",
- "src": "4614:129:8"
- },
- {
- "attributes": {
- "functionSelector": "d15b223e",
- "implemented": true,
- "isConstructor": false,
- "kind": "function",
- "modifiers": [
- null
- ],
- "name": "depositTokens",
- "scope": 1610,
- "stateMutability": "nonpayable",
- "virtual": false,
- "visibility": "public"
- },
- "children": [
- {
- "attributes": {
- "text": " @dev Deposits tokens in ``amount`` to specific ``UAI``"
- },
- "id": 1532,
- "name": "StructuredDocumentation",
- "src": "4746:73:8"
- },
- {
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "amount",
- "scope": 1609,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "uint256",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "uint256",
- "type": "uint256"
- },
- "id": 1533,
- "name": "ElementaryTypeName",
- "src": "4848:7:8"
- }
- ],
- "id": 1534,
- "name": "VariableDeclaration",
- "src": "4848:14:8"
- },
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "UAI",
- "scope": 1609,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bytes32",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bytes32",
- "type": "bytes32"
- },
- "id": 1535,
- "name": "ElementaryTypeName",
- "src": "4864:7:8"
- }
- ],
- "id": 1536,
- "name": "VariableDeclaration",
- "src": "4864:11:8"
- }
- ],
- "id": 1537,
- "name": "ParameterList",
- "src": "4847:29:8"
- },
- {
- "attributes": {
- "parameters": [
- null
- ]
- },
- "children": [],
- "id": 1538,
- "name": "ParameterList",
- "src": "4884:0:8"
- },
- {
- "children": [
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b",
- "typeString": "literal_string \"Amount cannot be zero\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1539,
- "name": "Identifier",
- "src": "4893:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1540,
- "name": "Identifier",
- "src": "4901:6:8"
- },
- {
- "attributes": {
- "hexvalue": "30",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "number",
- "type": "int_const 0",
- "value": "0"
- },
- "id": 1541,
- "name": "Literal",
- "src": "4908:1:8"
- }
- ],
- "id": 1542,
- "name": "BinaryOperation",
- "src": "4901:8:8"
- },
- {
- "attributes": {
- "hexvalue": "416d6f756e742063616e6e6f74206265207a65726f",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Amount cannot be zero\"",
- "value": "Amount cannot be zero"
- },
- "id": 1543,
- "name": "Literal",
- "src": "4911:23:8"
- }
- ],
- "id": 1544,
- "name": "FunctionCall",
- "src": "4893:42:8"
- }
- ],
- "id": 1545,
- "name": "ExpressionStatement",
- "src": "4893:42:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_3bc5ac98536c45d410bf37692b674d7f6ad3249fabf29eadc142b2e562988389",
- "typeString": "literal_string \"Sender allowance must be equal to or higher than chosen amount\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1546,
- "name": "Identifier",
- "src": "4943:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "allowance",
- "referencedDeclaration": 635,
- "type": "function (address,address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1157,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 1547,
- "name": "Identifier",
- "src": "4951:5:8"
- }
- ],
- "id": 1548,
- "name": "MemberAccess",
- "src": "4951:15:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1549,
- "name": "Identifier",
- "src": "4967:3:8"
- }
- ],
- "id": 1550,
- "name": "MemberAccess",
- "src": "4967:10:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 1551,
- "name": "ElementaryTypeName",
- "src": "4979:7:8"
- }
- ],
- "id": 1552,
- "name": "ElementaryTypeNameExpression",
- "src": "4979:7:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967268,
- "type": "contract UAIRegistry",
- "value": "this"
- },
- "id": 1553,
- "name": "Identifier",
- "src": "4987:4:8"
- }
- ],
- "id": 1554,
- "name": "FunctionCall",
- "src": "4979:13:8"
- }
- ],
- "id": 1555,
- "name": "FunctionCall",
- "src": "4951:42:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1556,
- "name": "Identifier",
- "src": "4997:6:8"
- }
- ],
- "id": 1557,
- "name": "BinaryOperation",
- "src": "4951:52:8"
- },
- {
- "attributes": {
- "hexvalue": "53656e64657220616c6c6f77616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e74",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Sender allowance must be equal to or higher than chosen amount\"",
- "value": "Sender allowance must be equal to or higher than chosen amount"
- },
- "id": 1558,
- "name": "Literal",
- "src": "5005:64:8"
- }
- ],
- "id": 1559,
- "name": "FunctionCall",
- "src": "4943:127:8"
- }
- ],
- "id": 1560,
- "name": "ExpressionStatement",
- "src": "4943:127:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_262e509abce0ea4c77b39344642b82be870ee6d03e35d57d1dee69295a1e383b",
- "typeString": "literal_string \"Sender balance must be equal to or higher than chosen amount!\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1561,
- "name": "Identifier",
- "src": "5078:7:8"
- },
- {
- "attributes": {
- "commonType": {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": ">=",
- "type": "bool"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "balanceOf",
- "referencedDeclaration": 615,
- "type": "function (address) view external returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1157,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 1562,
- "name": "Identifier",
- "src": "5086:5:8"
- }
- ],
- "id": 1563,
- "name": "MemberAccess",
- "src": "5086:15:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1564,
- "name": "Identifier",
- "src": "5102:3:8"
- }
- ],
- "id": 1565,
- "name": "MemberAccess",
- "src": "5102:10:8"
- }
- ],
- "id": 1566,
- "name": "FunctionCall",
- "src": "5086:27:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1567,
- "name": "Identifier",
- "src": "5117:6:8"
- }
- ],
- "id": 1568,
- "name": "BinaryOperation",
- "src": "5086:37:8"
- },
- {
- "attributes": {
- "hexvalue": "53656e6465722062616c616e6365206d75737420626520657175616c20746f206f7220686967686572207468616e2063686f73656e20616d6f756e7421",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Sender balance must be equal to or higher than chosen amount!\"",
- "value": "Sender balance must be equal to or higher than chosen amount!"
- },
- "id": 1569,
- "name": "Literal",
- "src": "5125:63:8"
- }
- ],
- "id": 1570,
- "name": "FunctionCall",
- "src": "5078:111:8"
- }
- ],
- "id": 1571,
- "name": "ExpressionStatement",
- "src": "5078:111:8"
- },
- {
- "attributes": {
- "assignments": [
- 1573
- ]
- },
- "children": [
- {
- "attributes": {
- "constant": false,
- "mutability": "mutable",
- "name": "transaction_result",
- "scope": 1608,
- "stateVariable": false,
- "storageLocation": "default",
- "type": "bool",
- "visibility": "internal"
- },
- "children": [
- {
- "attributes": {
- "name": "bool",
- "type": "bool"
- },
- "id": 1572,
- "name": "ElementaryTypeName",
- "src": "5198:4:8"
- }
- ],
- "id": 1573,
- "name": "VariableDeclaration",
- "src": "5198:23:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "bool",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- },
- {
- "typeIdentifier": "t_address",
- "typeString": "address"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "transferFrom",
- "referencedDeclaration": 657,
- "type": "function (address,address,uint256) external returns (bool)"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1157,
- "type": "contract IERC20",
- "value": "token"
- },
- "id": 1574,
- "name": "Identifier",
- "src": "5224:5:8"
- }
- ],
- "id": 1575,
- "name": "MemberAccess",
- "src": "5224:18:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1576,
- "name": "Identifier",
- "src": "5243:3:8"
- }
- ],
- "id": 1577,
- "name": "MemberAccess",
- "src": "5243:10:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "address",
- "type_conversion": true
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_contract$_UAIRegistry_$1610",
- "typeString": "contract UAIRegistry"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "type": "type(address)"
- },
- "children": [
- {
- "attributes": {
- "name": "address"
- },
- "id": 1578,
- "name": "ElementaryTypeName",
- "src": "5255:7:8"
- }
- ],
- "id": 1579,
- "name": "ElementaryTypeNameExpression",
- "src": "5255:7:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967268,
- "type": "contract UAIRegistry",
- "value": "this"
- },
- "id": 1580,
- "name": "Identifier",
- "src": "5263:4:8"
- }
- ],
- "id": 1581,
- "name": "FunctionCall",
- "src": "5255:13:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1582,
- "name": "Identifier",
- "src": "5270:6:8"
- }
- ],
- "id": 1583,
- "name": "FunctionCall",
- "src": "5224:53:8"
- }
- ],
- "id": 1584,
- "name": "VariableDeclarationStatement",
- "src": "5198:79:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bool",
- "typeString": "bool"
- },
- {
- "typeIdentifier": "t_stringliteral_c60aa67373380e582a977ce48d7156e19a6358c471790919f2371ebd75aaf7c7",
- "typeString": "literal_string \"Token transaction execution failed!\""
- }
- ],
- "overloadedDeclarations": [
- 4294967278,
- 4294967278
- ],
- "referencedDeclaration": 4294967278,
- "type": "function (bool,string memory) pure",
- "value": "require"
- },
- "id": 1585,
- "name": "Identifier",
- "src": "5285:7:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1573,
- "type": "bool",
- "value": "transaction_result"
- },
- "id": 1586,
- "name": "Identifier",
- "src": "5293:18:8"
- },
- {
- "attributes": {
- "hexvalue": "546f6b656e207472616e73616374696f6e20657865637574696f6e206661696c656421",
- "isConstant": false,
- "isLValue": false,
- "isPure": true,
- "lValueRequested": false,
- "token": "string",
- "type": "literal_string \"Token transaction execution failed!\"",
- "value": "Token transaction execution failed!"
- },
- "id": 1587,
- "name": "Literal",
- "src": "5313:37:8"
- }
- ],
- "id": 1588,
- "name": "FunctionCall",
- "src": "5285:66:8"
- }
- ],
- "id": 1589,
- "name": "ExpressionStatement",
- "src": "5285:66:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "operator": "=",
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": true,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1184,
- "type": "mapping(bytes32 => uint256)",
- "value": "assetStake"
- },
- "id": 1590,
- "name": "Identifier",
- "src": "5496:10:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1536,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1591,
- "name": "Identifier",
- "src": "5507:3:8"
- }
- ],
- "id": 1592,
- "name": "IndexAccess",
- "src": "5496:15:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "uint256",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- }
- ],
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "add",
- "referencedDeclaration": 303,
- "type": "function (uint256,uint256) pure returns (uint256)"
- },
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": true,
- "isPure": false,
- "lValueRequested": false,
- "type": "uint256"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1184,
- "type": "mapping(bytes32 => uint256)",
- "value": "assetStake"
- },
- "id": 1593,
- "name": "Identifier",
- "src": "5514:10:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1536,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1594,
- "name": "Identifier",
- "src": "5525:3:8"
- }
- ],
- "id": 1595,
- "name": "IndexAccess",
- "src": "5514:15:8"
- }
- ],
- "id": 1596,
- "name": "MemberAccess",
- "src": "5514:19:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1597,
- "name": "Identifier",
- "src": "5534:6:8"
- }
- ],
- "id": 1598,
- "name": "FunctionCall",
- "src": "5514:27:8"
- }
- ],
- "id": 1599,
- "name": "Assignment",
- "src": "5496:45:8"
- }
- ],
- "id": 1600,
- "name": "ExpressionStatement",
- "src": "5496:45:8"
- },
- {
- "children": [
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "isStructConstructorCall": false,
- "lValueRequested": false,
- "names": [
- null
- ],
- "tryCall": false,
- "type": "tuple()",
- "type_conversion": false
- },
- "children": [
- {
- "attributes": {
- "argumentTypes": [
- {
- "typeIdentifier": "t_bytes32",
- "typeString": "bytes32"
- },
- {
- "typeIdentifier": "t_uint256",
- "typeString": "uint256"
- },
- {
- "typeIdentifier": "t_address_payable",
- "typeString": "address payable"
- }
- ],
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1208,
- "type": "function (bytes32,uint256,address)",
- "value": "TokensDepositedToAsset"
- },
- "id": 1601,
- "name": "Identifier",
- "src": "5550:22:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1536,
- "type": "bytes32",
- "value": "UAI"
- },
- "id": 1602,
- "name": "Identifier",
- "src": "5573:3:8"
- },
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 1534,
- "type": "uint256",
- "value": "amount"
- },
- "id": 1603,
- "name": "Identifier",
- "src": "5578:6:8"
- },
- {
- "attributes": {
- "isConstant": false,
- "isLValue": false,
- "isPure": false,
- "lValueRequested": false,
- "member_name": "sender",
- "type": "address payable"
- },
- "children": [
- {
- "attributes": {
- "overloadedDeclarations": [
- null
- ],
- "referencedDeclaration": 4294967281,
- "type": "msg",
- "value": "msg"
- },
- "id": 1604,
- "name": "Identifier",
- "src": "5585:3:8"
- }
- ],
- "id": 1605,
- "name": "MemberAccess",
- "src": "5585:10:8"
- }
- ],
- "id": 1606,
- "name": "FunctionCall",
- "src": "5550:46:8"
- }
- ],
- "id": 1607,
- "name": "EmitStatement",
- "src": "5545:51:8"
- }
- ],
- "id": 1608,
- "name": "Block",
- "src": "4884:717:8"
- }
- ],
- "id": 1609,
- "name": "FunctionDefinition",
- "src": "4825:776:8"
- }
- ],
- "id": 1610,
- "name": "ContractDefinition",
- "src": "623:4983:8"
- }
- ],
- "id": 1611,
- "name": "SourceUnit",
- "src": "0:5606:8"
- },
- "compiler": {
- "name": "solc",
- "version": "0.7.6+commit.7338295f.Emscripten.clang"
- },
- "networks": {
- "5777": {
- "events": {
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- "0x2460c4e801cd784222555963fc8a1f1497f9ce3b23446fa14da62d3170989333": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "depositor",
- "type": "address"
- }
- ],
- "name": "TokensDepositedToAsset",
- "type": "event"
- },
- "0x2f87578a4aeec4a0b61bbcea1767fec00fa79a35cf600b258509e25acdaba8e7": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAICreated",
- "type": "event"
- },
- "0x52db5c2cb9235be3e8a3fe47f4ec4bc55b5e28aa119b750b0e766b1cb00c9aa7": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionRegistryAddress",
- "type": "address"
- }
- ],
- "name": "UAIRegistryInit",
- "type": "event"
- },
- "0xa83f066abfa07a77196c29bd4b7aab88f194feaa03d9769ec2ceccf6701d06de": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAIUpdatedState",
- "type": "event"
- }
- },
- "links": {},
- "address": "0x04d5396358647Cd863293c156037D0AC02328c32",
- "transactionHash": "0x8cbcb3d1bfbc3e4962586b5f0527de00742bd6ca92e8e91ceef4f3c87ecc10da"
- },
- "80001": {
- "events": {
- "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "previousOwner",
- "type": "address"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "newOwner",
- "type": "address"
- }
- ],
- "name": "OwnershipTransferred",
- "type": "event"
- },
- "0x2460c4e801cd784222555963fc8a1f1497f9ce3b23446fa14da62d3170989333": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "uint256",
- "name": "amount",
- "type": "uint256"
- },
- {
- "indexed": true,
- "internalType": "address",
- "name": "depositor",
- "type": "address"
- }
- ],
- "name": "TokensDepositedToAsset",
- "type": "event"
- },
- "0x2f87578a4aeec4a0b61bbcea1767fec00fa79a35cf600b258509e25acdaba8e7": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAICreated",
- "type": "event"
- },
- "0x52db5c2cb9235be3e8a3fe47f4ec4bc55b5e28aa119b750b0e766b1cb00c9aa7": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "address",
- "name": "assertionRegistryAddress",
- "type": "address"
- }
- ],
- "name": "UAIRegistryInit",
- "type": "event"
- },
- "0xa83f066abfa07a77196c29bd4b7aab88f194feaa03d9769ec2ceccf6701d06de": {
- "anonymous": false,
- "inputs": [
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "UAI",
- "type": "bytes32"
- },
- {
- "indexed": true,
- "internalType": "bytes32",
- "name": "stateCommitHash",
- "type": "bytes32"
- }
- ],
- "name": "UAIUpdatedState",
- "type": "event"
- }
- },
- "links": {},
- "address": "0xFD6ECaed420aB70fb97eB2423780517dc425ef81",
- "transactionHash": "0xf382f1e521d6a6c794bea0e3522669706b1afcf004e4c40876fe2e40214cab71"
- }
- },
- "schemaVersion": "3.4.3",
- "updatedAt": "2022-02-11T10:13:46.703Z",
- "networkType": "ethereum",
- "devdoc": {
- "kind": "dev",
- "methods": {
- "depositTokens(uint256,bytes32)": {
- "details": "Deposits tokens in ``amount`` to specific ``UAI``"
- },
- "owner()": {
- "details": "Returns the address of the current owner."
- },
- "renounceOwnership()": {
- "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
- },
- "transferOwnership(address)": {
- "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
- }
- },
- "version": 1
- },
- "userdoc": {
- "kind": "user",
- "methods": {},
- "version": 1
- }
-}
\ No newline at end of file
diff --git a/config/config.json b/config/config.json
index 582f5908a..b374f0dc4 100644
--- a/config/config.json
+++ b/config/config.json
@@ -17,19 +17,40 @@
"implementation": {
"express-http-client": {
"package": "./http-client/implementation/express-http-client",
- "config": {}
+ "config": {
+ "useSsl": false,
+ "port": 8900,
+ "sslKeyPath": "/root/certs/privkey.pem",
+ "sslCertificatePath": "/root/certs/fullchain.pem",
+ "rateLimiter": {
+ "timeWindowSeconds": 60,
+ "maxRequests": 10
+ }
+ }
+ }
+ }
+ },
+ "network": {
+ "enabled": true,
+ "implementation": {
+ "libp2p-service": {
+ "package": "./network/implementation/libp2p-service",
+ "config": {
+ "port": 9000,
+ "bootstrap": []
+ }
}
}
},
"repository": {
- "enabled": false,
+ "enabled": true,
"implementation": {
"sequelize-repository": {
"package": "./repository/implementation/sequelize/sequelize-repository",
"config": {
"database": "operationaldb",
"user": "root",
- "password": "password",
+ "password": "",
"port": "3306",
"host": "localhost",
"dialect": "mysql",
@@ -37,44 +58,104 @@
}
}
}
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-graphdb",
+ "implementation": {
+ "ot-blazegraph": {
+ "package": "./triple-store/implementation/ot-blazegraph/ot-blazegraph",
+ "config": {
+ "url": "http://localhost:9999/blazegraph",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-fuseki": {
+ "package": "./triple-store/implementation/ot-fuseki/ot-fuseki",
+ "config": {
+ "url": "http://localhost:3030",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {
+ "url": "http://localhost:7200",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ }
+ }
+ },
+ "validation": {
+ "enabled": true,
+ "implementation": {
+ "merkle-validation": {
+ "package": "./validation/implementation/merkle-validation",
+ "config": {}
+ }
+ }
+ },
+ "blockchain": {
+ "enabled": true,
+ "implementation": {
+ "ganache": {
+ "package": "./blockchain/implementation/ganache/ganache-service",
+ "config": {
+ "blockchainTitle": "ganache",
+ "networkId": "ganache::testnet",
+ "hubContractAddress": "0xF21dD87cFC5cF5D073398833AFe5EFC543b78a00",
+ "rpcEndpoints": ["http://localhost:7545"],
+ "evmManagementPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ },
+ "otp": {
+ "package": "./blockchain/implementation/ot-parachain/ot-parachain-service",
+ "config": {
+ "networkId": "otp::testnet",
+ "hubContractAddress": "0x6e002616ADf12D4Cc908976eB16a7646B6cD6596",
+ "rpcEndpoints": ["wss://parachain-tempnet-01.origin-trail.network"],
+ "evmManagementPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ },
+ "polygon": {
+ "package": "./blockchain/implementation/polygon/polygon-service",
+ "config": {
+ "networkId": "polygon::testnet",
+ "hubContractAddress": "0xdaa16AC171CfE8Df6F79C06E7EEAb2249E2C9Ec8",
+ "gasPriceOracleLink": "https://gasstation-mumbai.matic.today/v2",
+ "rpcEndpoints": [
+ "https://matic-mumbai.chainstacklabs.com",
+ "https://rpc-mumbai.matic.today",
+ "https://matic-testnet-archive-rpc.bwarelabs.com"
+ ],
+ "evmManagementPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ }
+ }
}
},
+ "commandExecutorVerboseLoggingEnabled": false,
+ "minimumReplicationFactor": 5,
+ "publishFindNodesCount": 20,
"appDataPath": "data",
- "blockchain": [
- {
- "blockchainTitle": "Polygon",
- "networkId": "polygon::mainnet",
- "hubContractAddress": "0xFD6ECaed420aB70fb97eB2423780517dc425ef81",
- "rpcEndpoints": [
- "https://rpc-mumbai.maticvigil.com/",
- "https://matic-mumbai.chainstacklabs.com",
- "https://rpc-mumbai.matic.today",
- "https://matic-testnet-archive-rpc.bwarelabs.com"
- ]
- }
- ],
- "graphDatabase": {
- "implementation": "GraphDB",
- "url": "http://localhost:7200",
- "name": "node0",
- "username": "admin",
- "password": ""
- },
- "logLevel": "trace",
- "replicationFactor": 5,
- "rpcPort": 8900,
- "network": {
- "port": 9000,
- "bootstrap": []
- },
- "ipWhitelist": ["::1", "127.0.0.1"],
- "telemetryHub": {
- "enabled": false,
- "packages": ["ot-telemetry-collector"],
- "url": ""
+ "logLevel": "info",
+ "telemetry": {
+ "enabled": true,
+ "sendTelemetryData": false,
+ "signalingServerUrl": "null"
},
- "operationalDatabase": {
- "databaseName": "operationaldb"
+ "auth": {
+ "ipBasedAuthEnabled": true,
+ "tokenBasedAuthEnabled": false,
+ "loggingEnabled": true,
+ "ipWhitelist": ["::1", "127.0.0.1"],
+ "publicOperations": []
}
},
"test": {
@@ -100,7 +181,7 @@
}
},
"repository": {
- "enabled": false,
+ "enabled": true,
"implementation": {
"sequelize-repository": {
"package": "./repository/implementation/sequelize/sequelize-repository",
@@ -115,39 +196,72 @@
}
}
}
+ },
+ "blockchain": {
+ "enabled": true,
+ "defaultImplementation": "ganache",
+ "implementation": {
+ "ganache": {
+ "package": "./blockchain/implementation/ganache/ganache-service",
+ "config": {
+ "blockchainTitle": "ganache",
+ "networkId": "ganache::testnet",
+ "hubContractAddress": "0xF21dD87cFC5cF5D073398833AFe5EFC543b78a00",
+ "rpcEndpoints": ["http://localhost:7545"]
+ }
+ }
+ }
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-graphdb",
+ "implementation": {
+ "ot-blazegraph": {
+ "package": "./triple-store/implementation/ot-blazegraph/ot-blazegraph",
+ "config": {
+ "url": "http://localhost:9999/blazegraph",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-fuseki": {
+ "package": "./triple-store/implementation/ot-fuseki/ot-fuseki",
+ "config": {
+ "url": "http://localhost:3030",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {
+ "url": "http://localhost:7200",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ }
+ }
}
},
+ "commandExecutorVerboseLoggingEnabled": false,
+ "minimumReplicationFactor": 5,
+ "publishFindNodesCount": 20,
"appDataPath": "data",
- "blockchain": [
- {
- "blockchainTitle": "ganache",
- "networkId": "ganache::testnet",
- "hubContractAddress": "",
- "rpcEndpoints": ["http://localhost:7545"]
- }
- ],
- "graphDatabase": {
- "implementation": "GraphDB",
- "url": "http://localhost:7200",
- "name": "node0",
- "username": "admin",
- "password": ""
- },
"logLevel": "trace",
- "replicationFactor": 5,
- "rpcPort": 8900,
- "network": {
- "port": 9000,
- "bootstrap": []
- },
- "ipWhitelist": ["::1", "127.0.0.1"],
- "telemetryHub": {
- "enabled": false,
- "packages": ["ot-telemetry-collector"],
- "url": ""
+ "telemetry": {
+ "enabled": true,
+ "sendTelemetryData": false,
+ "signalingServerUrl": "null"
},
- "operationalDatabase": {
- "databaseName": "operationaldb"
+ "auth": {
+ "ipBasedAuthEnabled": true,
+ "tokenBasedAuthEnabled": false,
+ "loggingEnabled": true,
+ "ipWhitelist": ["::1", "127.0.0.1"],
+ "publicOperations": []
}
},
"testnet": {
@@ -163,17 +277,44 @@
}
}
},
+ "network": {
+ "enabled": true,
+ "implementation": {
+ "libp2p-service": {
+ "package": "./network/implementation/libp2p-service",
+ "config": {
+ "port": 9000,
+ "bootstrap": [
+ "/ip4/139.59.174.24/tcp/9000/p2p/QmU7p61f8qgzCtfTEUynJaqnsLRN4QExjtWfsMRQ7oiMuS",
+ "/ip4/142.93.166.214/tcp/9000/p2p/QmXPcjsvURvyC4hEbwgirRue7KzcvpvYgsaPUharRMJAcP",
+ "/ip4/178.128.117.211/tcp/9000/p2p/QmVdXs1PhoXcXYWGEH6Q4BnGN9uNNUcm4ctMt2Pttq8Dgc",
+ "/ip4/3.125.64.137/tcp/9000/p2p/QmQWvBBAJKTwPTzHr47LZaLWFwCESE97iwJwmYb7spZuHt",
+ "/ip4/3.126.112.75/tcp/9000/p2p/QmeB5srsgkwwhkVieHXunjsVsGkV9MyL4EqV122u1wZHoj"
+ ]
+ }
+ }
+ }
+ },
"httpClient": {
"enabled": true,
"implementation": {
"express-http-client": {
"package": "./http-client/implementation/express-http-client",
- "config": {}
+ "config": {
+ "useSsl": true,
+ "port": 8900,
+ "sslKeyPath": "/root/certs/privkey.pem",
+ "sslCertificatePath": "/root/certs/fullchain.pem",
+ "rateLimiter": {
+ "timeWindowSeconds": 60,
+ "maxRequests": 10
+ }
+ }
}
}
},
"repository": {
- "enabled": false,
+ "enabled": true,
"implementation": {
"sequelize-repository": {
"package": "./repository/implementation/sequelize/sequelize-repository",
@@ -188,48 +329,93 @@
}
}
}
+ },
+ "blockchain": {
+ "enabled": true,
+ "defaultImplementation": "otp",
+ "implementation": {
+ "otp": {
+ "package": "./blockchain/implementation/ot-parachain/ot-parachain-service",
+ "config": {
+ "networkId": "parachain::testnet",
+ "hubContractAddress": "0x256736AEb3f19AC6738E9F4D10C9B61da71CEB9F",
+ "rpcEndpoints": ["wss://lofar.origin-trail.network"]
+ }
+ },
+ "polygon": {
+ "package": "./blockchain/implementation/polygon/polygon-service",
+ "config": {
+ "networkId": "polygon::testnet",
+ "hubContractAddress": "0xdaa16AC171CfE8Df6F79C06E7EEAb2249E2C9Ec8",
+ "gasPriceOracleLink": "https://gasstation-mumbai.matic.today/v2",
+ "rpcEndpoints": [
+ "https://matic-mumbai.chainstacklabs.com",
+ "https://rpc-mumbai.matic.today",
+ "https://matic-testnet-archive-rpc.bwarelabs.com"
+ ]
+ }
+ }
+ }
+ },
+ "validation": {
+ "enabled": true,
+ "implementation": {
+ "merkle-validation": {
+ "package": "./validation/implementation/merkle-validation",
+ "config": {}
+ }
+ }
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-blazegraph",
+ "implementation": {
+ "ot-blazegraph": {
+ "package": "./triple-store/implementation/ot-blazegraph/ot-blazegraph",
+ "config": {
+ "url": "http://localhost:9999/blazegraph",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-fuseki": {
+ "package": "./triple-store/implementation/ot-fuseki/ot-fuseki",
+ "config": {
+ "url": "http://localhost:3030",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {
+ "url": "http://localhost:7200",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ }
+ }
}
},
+ "commandExecutorVerboseLoggingEnabled": false,
+ "minimumReplicationFactor": 5,
+ "publishFindNodesCount": 20,
"appDataPath": "data",
- "blockchain": [
- {
- "blockchainTitle": "Polygon",
- "networkId": "polygon::testnet",
- "hubContractAddress": "0xFD6ECaed420aB70fb97eB2423780517dc425ef81",
- "rpcEndpoints": [
- "https://rpc-mumbai.maticvigil.com/",
- "https://matic-mumbai.chainstacklabs.com",
- "https://rpc-mumbai.matic.today",
- "https://matic-testnet-archive-rpc.bwarelabs.com"
- ]
- }
- ],
- "graphDatabase": {
- "implementation": "GraphDB",
- "url": "http://localhost:7200",
- "name": "node0",
- "username": "admin",
- "password": ""
- },
"logLevel": "trace",
- "replicationFactor": 5,
- "rpcPort": 8900,
- "network": {
- "port": 9000,
- "bootstrap": [
- "/ip4/165.232.122.94/tcp/9000/p2p/QmQ2zigjQikYnyYUSXZydNXrDRhBut2mubwJBaLXobMt3A",
- "/ip4/46.101.111.223/tcp/9000/p2p/QmdTKEP4DDSwYzX2CHEsBfpEAKAVyE4mPq9ouh4ehZZbg5",
- "/ip4/46.101.153.21/tcp/9000/p2p/QmXzmTqVT3TPUtTz4dBDN5NWSABqnX9rKXCG9WCLXMfEaM"
- ]
- },
- "ipWhitelist": ["::1", "127.0.0.1"],
- "telemetryHub": {
+ "telemetry": {
"enabled": true,
- "packages": ["ot-telemetry-collector"],
- "url": "https://polaris.delta.origin-trail.network/metrics/"
+ "sendTelemetryData": true,
+ "signalingServerUrl": "https://testnet-signaling.origin-trail.network/signal"
},
- "operationalDatabase": {
- "databaseName": "operationaldb"
+ "auth": {
+ "ipBasedAuthEnabled": true,
+ "tokenBasedAuthEnabled": false,
+ "loggingEnabled": true,
+ "ipWhitelist": ["::1", "127.0.0.1"],
+ "publicOperations": []
}
},
"mainnet": {
@@ -250,12 +436,21 @@
"implementation": {
"express-http-client": {
"package": "./http-client/implementation/express-http-client",
- "config": {}
+ "config": {
+ "useSsl": true,
+ "port": 8900,
+ "sslKeyPath": "/root/certs/privkey.pem",
+ "sslCertificatePath": "/root/certs/fullchain.pem",
+ "rateLimiter": {
+ "timeWindowSeconds": 60,
+ "maxRequests": 10
+ }
+ }
}
}
},
"repository": {
- "enabled": false,
+ "enabled": true,
"implementation": {
"sequelize-repository": {
"package": "./repository/implementation/sequelize/sequelize-repository",
@@ -270,32 +465,89 @@
}
}
}
+ },
+ "validation": {
+ "enabled": true,
+ "implementation": {
+ "merkle-validation": {
+ "package": "./validation/implementation/merkle-validation",
+ "config": {}
+ }
+ }
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-blazegraph",
+ "implementation": {
+ "ot-blazegraph": {
+ "package": "./triple-store/implementation/ot-blazegraph/ot-blazegraph",
+ "config": {
+ "url": "http://localhost:9999/blazegraph",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-fuseki": {
+ "package": "./triple-store/implementation/ot-fuseki/ot-fuseki",
+ "config": {
+ "url": "http://localhost:3030",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ },
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {
+ "url": "http://localhost:7200",
+ "repository": "node0",
+ "username": "admin",
+ "password": ""
+ }
+ }
+ }
+ },
+ "blockchain": {
+ "enabled": true,
+ "implementation": {
+ "otp": {
+ "package": "./blockchain/implementation/ot-parachain/ot-parachain-service",
+ "config": {
+ "networkId": "otp::mainnet",
+ "hubContractAddress": "",
+ "rpcEndpoints": []
+ }
+ },
+ "polygon": {
+ "package": "./blockchain/implementation/polygon/polygon-service",
+ "config": {
+ "networkId": "polygon::mainnet",
+ "hubContractAddress": "",
+ "gasPriceOracleLink": "",
+ "rpcEndpoints": []
+ }
+ }
+ }
}
},
+ "minimumReplicationFactor": 5,
+ "publishFindNodesCount": 20,
+ "signalingServerUrl": "http://devnet-signaling.origin-trail.network:3000/signal",
+ "commandExecutorVerboseLoggingEnabled": false,
"appDataPath": "data",
- "blockchain": [],
- "graphDatabase": {
- "implementation": "GraphDB",
- "url": "http://localhost:7200",
- "name": "node0",
- "username": "admin",
- "password": ""
- },
"logLevel": "trace",
- "replicationFactor": 5,
- "rpcPort": 8900,
- "network": {
- "port": 9000,
- "bootstrap": []
- },
- "ipWhitelist": ["::1", "127.0.0.1"],
- "telemetryHub": {
+ "telemetry": {
"enabled": false,
- "packages": ["ot-telemetry-collector"],
- "url": ""
+ "sendTelemetryData": false,
+ "signalingServerUrl": "http://devnet-signaling.origin-trail.network:3000/signal"
},
- "operationalDatabase": {
- "databaseName": "operationaldb"
+ "auth": {
+ "ipBasedAuthEnabled": true,
+ "tokenBasedAuthEnabled": false,
+ "loggingEnabled": true,
+ "ipWhitelist": ["::1", "127.0.0.1"],
+ "publicOperations": []
}
}
}
diff --git a/config/sequelizeConfig.js b/config/sequelizeConfig.js
deleted file mode 100644
index 6018c8788..000000000
--- a/config/sequelizeConfig.js
+++ /dev/null
@@ -1,17 +0,0 @@
-require('dotenv').config();
-
-module.exports = {
- username: 'root',
- password: '',
- database: 'operationaldb',
- dialect: 'mysql',
- host: 'localhost',
- port: 3306,
- migrationStorageTableName: 'sequelize_meta',
- logging: false,
- operatorsAliases: '0',
- define: {
- underscored: true,
- timestamps: true,
- },
-};
diff --git a/external/blazegraph-service.js b/external/blazegraph-service.js
deleted file mode 100644
index d283fbe51..000000000
--- a/external/blazegraph-service.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const axios = require('axios');
-const SparqlqueryService = require('./sparqlquery-service');
-
-class BlazegraphService extends SparqlqueryService{
- constructor(config) {
- super({
- sparqlEndpoint: `${config.url}/sparql`,
- sparqlEndpointUpdate: `${config.url}/sparql`,
- })
- this.url = config.url
- }
-
- async healthCheck() {
- try {
- const response = await axios.get(`${this.url}/status`, {});
- if (response.data !== null) {
- return true;
- }
- return false;
- } catch (e) {
- return false;
- }
- }
-
- getName() {
- return 'Blazegraph';
- }
-}
-
-module.exports = BlazegraphService;
diff --git a/external/fuseki-service.js b/external/fuseki-service.js
deleted file mode 100644
index 6ed6f2f11..000000000
--- a/external/fuseki-service.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const axios = require('axios');
-const SparqlqueryService = require('./sparqlquery-service');
-
-class FusekiService extends SparqlqueryService{
- constructor(config) {
- super({
- sparqlEndpoint: `${config.url}/${config.name}/sparql`,
- sparqlEndpointUpdate: `${config.url}/${config.name}/update`,
- })
- this.url = config.url
- }
-
- async healthCheck() {
- try {
- const response = await axios.get(`${this.url}/$/ping`, {});
- if (response.data !== null) {
- return true;
- }
- return false;
- } catch (e) {
- return false;
- }
- }
-
- getName() {
- return 'Fuseki';
- }
-}
-
-module.exports = FusekiService;
diff --git a/external/kad-identity-ranking-service.js b/external/kad-identity-ranking-service.js
deleted file mode 100644
index c844de256..000000000
--- a/external/kad-identity-ranking-service.js
+++ /dev/null
@@ -1,42 +0,0 @@
-const { sha256 } = require('multiformats/hashes/sha2');
-
-class KadIdentityRanking {
- initialize(logger) {
- this.logger = logger;
- }
-
- /**
- * Default distance function. Finds the XOR
- * distance between firstId and secondId.
- *
- * @param {Uint8Array} firstId Uint8Array containing first id.
- * @param {Uint8Array} secondId Uint8Array containing second id.
- * @return {Number} Integer The XOR distance between firstId
- * and secondId.
- */
- distance(firstId, secondId) {
- let distance = 0;
- let i = 0;
- const min = Math.min(firstId.length, secondId.length);
- const max = Math.max(firstId.length, secondId.length);
- for (; i < min; i += 1) {
- distance = distance * 256 + (firstId[i] ^ secondId[i]);
- }
- for (; i < max; i += 1) distance = distance * 256 + 255;
- return distance;
- }
-
- async execute(nodes, topic, replicationFactor) {
- const encodedKey = new TextEncoder().encode(topic);
- const id = (await sha256.digest(encodedKey)).digest;
-
- nodes.sort((first_node, second_node) => this.distance(id, first_node._id) - this.distance(id, second_node._id));
- for (const node of nodes) {
- this.logger.info(`XOR distance between topic ${topic} and node ${node._idB58String}: ${this.distance(id, node._id)}`);
- }
-
- return nodes.slice(0, replicationFactor);
- }
-}
-
-module.exports = KadIdentityRanking;
diff --git a/external/libp2p-service.js b/external/libp2p-service.js
deleted file mode 100644
index ba83a56ce..000000000
--- a/external/libp2p-service.js
+++ /dev/null
@@ -1,335 +0,0 @@
-const Libp2p = require('libp2p');
-const {Record} = require('libp2p-record');
-const KadDHT = require('libp2p-kad-dht');
-const Bootstrap = require('libp2p-bootstrap');
-const {NOISE} = require('libp2p-noise');
-const MPLEX = require('libp2p-mplex');
-const TCP = require('libp2p-tcp');
-const pipe = require('it-pipe');
-const {sha256} = require('multiformats/hashes/sha2');
-const PeerId = require("peer-id");
-const { BufferList } = require('bl')
-const { InMemoryRateLimiter } = require("rolling-rate-limiter");
-const constants = require('../modules/constants');
-
-const initializationObject = {
- addresses: {
- listen: ['/ip4/0.0.0.0/tcp/9000'],
- },
- modules: {
- transport: [TCP],
- streamMuxer: [MPLEX],
- connEncryption: [NOISE],
- dht: KadDHT,
- },
- dialer: {
- dialTimeout: 2e3,
- },
- config: {
- dht: {
- enabled: true,
- },
- },
-};
-
-class Libp2pService {
- constructor(config) {
- this.config = config;
- }
-
- initialize(logger) {
- this.logger = logger;
- return new Promise(async (resolve, reject) => {
- if (this.config.bootstrapMultiAddress.length > 0) {
- initializationObject.modules.peerDiscovery = [Bootstrap];
- initializationObject.config.peerDiscovery = {
- autoDial: true,
- [Bootstrap.tag]: {
- enabled: true,
- list: this.config.bootstrapMultiAddress,
- },
- };
- }
- initializationObject.addresses = {
- listen: [`/ip4/0.0.0.0/tcp/${this.config.port}`] // for production
- // announce: ['/dns4/auto-relay.libp2p.io/tcp/443/wss/p2p/QmWDn2LY8nannvSWJzruUYoLZ4vV83vfCBwd8DipvdgQc3']
- };
- let id;
- let privKey;
- if (!this.config.peerId) {
- if (!this.config.privateKey) {
- id = await PeerId.create({bits: 1024, keyType: 'RSA'})
- privKey = id.toJSON().privKey;
- } else {
- privKey = this.config.privateKey;
- id = await PeerId.createFromPrivKey(this.config.privateKey);
- }
- this.config.privateKey = privKey;
- this.config.peerId = id;
- }
-
- initializationObject.peerId = this.config.peerId;
- this.workerPool = this.config.workerPool;
- this._initializeRateLimiters();
-
- Libp2p.create(initializationObject).then((node) => {
- this.node = node;
- this._initializeNodeListeners();
- })
- .then(() => this.node.start())
- .then((result) => {
- const port = parseInt(this.node.multiaddrs.toString().split('/')[4], 10);
- const peerId = this.node.peerId._idB58String;
- this.config.id = peerId;
- this.logger.info(`Network ID is ${peerId}, connection port is ${port}`);
- resolve({
- peerId: this.config.peerId,
- privateKey: this.config.privateKey,
- });
- })
- .catch((err) => {
- reject(err);
- });
- });
- }
-
- _initializeRateLimiters() {
- const basicRateLimiter = new InMemoryRateLimiter({
- interval: constants.NETWORK_API_RATE_LIMIT.TIME_WINDOW_MILLS,
- maxInInterval: constants.NETWORK_API_RATE_LIMIT.MAX_NUMBER,
- });
-
- const spamDetection = new InMemoryRateLimiter({
- interval: constants.NETWORK_API_SPAM_DETECTION.TIME_WINDOW_MILLS,
- maxInInterval: constants.NETWORK_API_SPAM_DETECTION.MAX_NUMBER,
- });
-
- this.rateLimiter = {
- basicRateLimiter,
- spamDetection,
- }
-
- this.blackList = {};
- }
-
- _initializeNodeListeners() {
- this.node.on('peer:discovery', (peer) => {
- this._onPeerDiscovery(peer);
- });
- this.node.connectionManager.on('peer:connect', (connection) => {
- this._onPeerConnect(connection);
- });
- }
-
- _onPeerDiscovery(peer) {
- this.logger.debug(`Node ${this.node.peerId._idB58String} discovered ${peer._idB58String}`);
- }
-
- _onPeerConnect(connection) {
- this.logger.debug(`Node ${this.node.peerId._idB58String} connected to ${connection.remotePeer.toB58String()}`);
- }
-
- async findNodes(key, protocol) {
- const encodedKey = new TextEncoder().encode(key);
- // Creates a DHT ID by hashing a given Uint8Array
- const id = (await sha256.digest(encodedKey)).digest;
- const nodes = this.node._dht.peerRouting.getClosestPeers(id);
- const result = new Set();
- for await (const node of nodes) {
- if(this.node.peerStore.peers.get(node._idB58String).protocols.includes(protocol)){
- result.add(node);
- }
- }
- this.logger.info(`Found ${result.size} nodes`);
-
- return [...result];
- }
-
- getPeers() {
- return this.node.connectionManager.connections;
- }
-
- getPeerId() {
- return this.node.peerId._idB58String;
- }
-
- store(peer, key, object) {
- const encodedKey = new TextEncoder().encode(key);
- const encodedObject = new TextEncoder().encode(object);
- const record = this._createPutRecord(encodedKey, encodedObject);
- return this.node._dht._putValueToPeer(encodedKey, record, peer);
- }
-
- _createPutRecord(key, value) {
- const rec = new Record(key, value, new Date());
- return rec.serialize();
- }
-
- async prepareForSending(data) {
- if(constants.NETWORK_RESPONSES[data]) {
- data = constants.STRINGIFIED_NETWORK_RESPONSES[data];
- } else {
- data = await this.workerPool.exec('JSONStringify', [data]);
- }
- return Buffer.from(data);
- }
-
- async handleMessage(eventName, handler, options) {
- this.logger.info(`Enabling network protocol: ${eventName}`);
-
- let async = false, timeout = constants.NETWORK_HANDLER_TIMEOUT;
- if (options) {
- async = options.async;
- timeout = options.timeout;
- }
- this.node.handle(eventName, async (handlerProps) => {
- const {stream} = handlerProps;
- let timestamp = Date.now();
- const remotePeerId = handlerProps.connection.remotePeer._idB58String;
- if(await this.limitRequest(remotePeerId)) {
- const preparedBlockedResponse = await this.prepareForSending(constants.NETWORK_RESPONSES.BLOCKED);
- await pipe(
- [preparedBlockedResponse],
- stream
- );
- return;
- }
- let data = await pipe(
- stream,
- async function (source) {
- const bl = new BufferList()
- for await (const msg of source) {
- bl.append(msg);
- }
- // console.log(`Receiving data using stream: ${result.toString()}`);
- return bl;
- }
- )
- try {
- data = await this.workerPool.exec('JSONParse', [data.toString()]);
- this.logger.info(`Receiving message from ${remotePeerId} to ${this.config.id}: event=${eventName};`);
- if (!async) {
- const result = await handler(data);
- this.logger.info(`Sending response from ${this.config.id} to ${remotePeerId}: event=${eventName};`);
- const preparedData = await this.prepareForSending(result);
- await pipe(
- [Buffer.from(preparedData)],
- stream,
- )
- } else {
- const preparedAckResponse = await this.prepareForSending(constants.NETWORK_RESPONSES.ACK);
- await pipe(
- [preparedAckResponse],
- stream
- )
-
- this.logger.info(`Sending response from ${this.config.id} to ${remotePeerId}: event=${eventName};`);
- const result = await handler(data);
- if (Date.now() <= timestamp + timeout) {
- await this.sendMessage(`${eventName}/result`, result, handlerProps.connection.remotePeer);
- } else {
- this.logger.warn(`Too late to send response from ${this.config.id} to ${remotePeerId}: event=${eventName};`);
- }
- }
- } catch (e) {
- const stringifiedData = await this.workerPool.exec('JSONStringify', [data]);
- this.logger.error({
- msg: `Error: ${e}, stack: ${e.stack} \n Data received: ${stringifiedData}`,
- Event_name: constants.ERROR_TYPE.LIBP2P_HANDLE_MSG_ERROR,
- });
- const preparedErrorResponse = await this.prepareForSending(constants.NETWORK_RESPONSES.ERROR);
- await pipe(
- [preparedErrorResponse],
- stream
- );
- }
- });
- }
-
- async sendMessage(eventName, data, peerId) {
- this.logger.info(`Sending message from ${this.config.id} to ${peerId._idB58String}: event=${eventName};`);
- const {stream} = await this.node.dialProtocol(peerId, eventName);
- const preparedData = await this.prepareForSending(data);
- const response = await pipe(
- [Buffer.from(preparedData)],
- stream,
- async function (source) {
- const bl = new BufferList()
- for await (const msg of source) {
- bl.append(msg);
- }
- // console.log(`Receiving data using stream: ${result.toString()}`);
- return bl;
- },
- )
-
- // TODO: Remove - Backwards compatibility check with 1.30 and lower
- if(response.toString() === constants.NETWORK_RESPONSES.ACK) {
- return null;
- }
-
- const parsedData = await this.workerPool.exec('JSONParse', [response.toString()]);
- const suppressedResponses = [constants.NETWORK_RESPONSES.ACK, constants.NETWORK_RESPONSES.BLOCKED, constants.NETWORK_RESPONSES.ERROR];
- if(suppressedResponses.includes(parsedData)) {
- return null;
- }
-
- return parsedData;
- }
-
- healthCheck() {
- // TODO: broadcast ping or sent msg to yourself
- const connectedNodes = this.node.connectionManager.size;
- if (connectedNodes > 0) return true;
- return false;
- }
-
- async limitRequest(remotePeerId) {
- if(this.blackList[remotePeerId]){
- const remainingMinutes = Math.floor(
- constants.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES -
- (Date.now() - this.blackList[remotePeerId]) / (1000 * 60)
- );
-
- if(remainingMinutes > 0) {
- this.logger.info(`Blocking request from ${remotePeerId}. Node is blacklisted for ${remainingMinutes} minutes.`);
-
- return true;
- } else {
- delete this.blackList[remotePeerId]
- }
- }
-
- if(await this.rateLimiter.spamDetection.limit(remotePeerId)) {
- this.blackList[remotePeerId] = Date.now();
- this.logger.info(
- `Blocking request from ${remotePeerId}. Spammer detected and blacklisted for ${constants.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES} minutes.`
- );
-
- return true;
- } else if (await this.rateLimiter.basicRateLimiter.limit(remotePeerId)) {
- this.logger.info(`Blocking request from ${remotePeerId}. Max number of requests exceeded.`);
-
- return true;
- }
-
- return false;
- }
-
- async restartService() {
- this.logger.info('Restrating libp2p service...');
- // TODO: reinitialize service
- }
-
- getPrivateKey() {
- return this.node.peerId.privKey;
- }
-
- getName() {
- return 'Libp2p';
- }
-
-}
-
-
-module.exports = Libp2pService;
diff --git a/external/merkle-validation-service.js b/external/merkle-validation-service.js
deleted file mode 100644
index 77070a631..000000000
--- a/external/merkle-validation-service.js
+++ /dev/null
@@ -1,230 +0,0 @@
-const MerkleTools = require('merkle-tools');
-const SHA256 = require('crypto-js/sha256');
-
-const elliptic = require('elliptic');
-
-const secp256k1 = new elliptic.ec('secp256k1');
-const sha3 = require('js-sha3');
-
-const BytesUtilities = require('./BytesUtilities');
-
-const _slicedToArray = (function () {
- function sliceIterator(arr, i) {
- const _arr = [];
- let _n = true;
- let _d = false;
- let _e = undefined;
- try {
- for (let _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
- _arr.push(_s.value);
- if (i && _arr.length === i) break;
- }
- } catch (err) {
- _d = true;
- _e = err;
- } finally {
- try {
- if (!_n && _i.return) _i.return();
- } finally {
- if (_d) throw _e;
- }
- }
- return _arr;
- }
-
- return function (arr, i) {
- if (Array.isArray(arr)) {
- return arr;
- } else if (Symbol.iterator in Object(arr)) {
- return sliceIterator(arr, i);
- }
- throw new TypeError('Invalid attempt to destructure non-iterable instance');
- };
-}());
-
-const SIGNATURE_TYPE = 'ethereum-signature';
-
-
-class MerkleValidationService {
- constructor(config) {
- this.config = config;
- }
-
- initialize(logger) {
- this.logger = logger;
- }
-
- calculateHash(string) {
- const hash = SHA256(string);
- return hash.toString();
- }
-
- calculateRootHash(assertion) {
- const tree = new MerkleTools({
- hashType: 'sha256',
- });
- for (const leaf of assertion) {
- tree.addLeaf(leaf, true);
- }
- tree.makeTree();
- return tree.getMerkleRoot().toString('hex');
- }
-
- getMerkleTree(rdf) {
- const tree = new MerkleTools({
- hashType: 'sha256',
- });
- for (const leaf of rdf) {
- tree.addLeaf(leaf, true);
- }
- tree.makeTree()
- return tree;
- }
-
- validateProof(triples, proofs, rootHash) {
- const tree = new MerkleTools();
- for (let i = 0; i < triples.length; i += 1) {
- const leaf = SHA256(triples[i]).toString();
- const verified = tree.validateProof(proofs[i], leaf, rootHash);
- if (!verified) {
- throw new Error(`Invalid proofs for triple: ${triples[i]}`);
- }
- }
- return `0x${rootHash}`;
- }
-
- sign(content, privateKey) {
- const signature = secp256k1.keyFromPrivate(Buffer.from(BytesUtilities.normalizeHex(privateKey).slice(2), 'hex'))
- .sign(Buffer.from(content, 'hex'), {canonical: true});
-
- const result = this.encodeSignature([
- BytesUtilities.fromString(BytesUtilities.fromNumber(27 + signature.recoveryParam)),
- BytesUtilities.pad(32, BytesUtilities.fromNat(`0x${signature.r.toString(16)}`)),
- BytesUtilities.pad(32, BytesUtilities.fromNat(`0x${signature.s.toString(16)}`)),
- ]);
-
- return result.signature;
- }
-
- verify(hash, signature, publicKey) {
- try {
- let vrs;
- if (Object.keys(signature).includes('r') &&
- Object.keys(signature).includes('s') &&
- Object.keys(signature).includes('v')) {
- vrs = {
- v: BytesUtilities.toNumber(signature.v),
- r: signature.r.slice(2),
- s: signature.s.slice(2),
- };
- } else {
- const decoded = this.decodeSignature(signature);
-
- vrs = {
- v: BytesUtilities.toNumber(decoded[0]),
- r: decoded[1].slice(2),
- s: decoded[2].slice(2),
- };
- }
-
- const pubKeyRecovered = secp256k1.recoverPubKey(
- Buffer.from(hash, 'hex'),
- vrs,
- vrs.v < 2 ? vrs.v : 1 - (vrs.v % 2),
- );
-
- if (secp256k1.verify(hash, vrs, pubKeyRecovered)) {
- const publicKeyRecovered = `0x${pubKeyRecovered.encode('hex', false).slice(2)}`;
- const publicHash = sha3.keccak256(Buffer.from(publicKeyRecovered.slice(2), 'hex'));
- const wallet = this.toChecksum(`0x${publicHash.slice(-40)}`);
-
- return BytesUtilities.normalizeHex(wallet).toLowerCase()
- === BytesUtilities.normalizeHex(publicKey).toLowerCase();
- }
- return false;
- } catch (e) {
- return false;
- }
- }
-
- recover(content, signature) {
- try {
- let vrs;
- if (Object.keys(signature).includes('r') &&
- Object.keys(signature).includes('s') &&
- Object.keys(signature).includes('v')) {
- vrs = {
- v: BytesUtilities.toNumber(signature.v),
- r: signature.r.slice(2),
- s: signature.s.slice(2),
- };
- } else {
- const decoded = this.decodeSignature(signature);
-
- vrs = {
- v: BytesUtilities.toNumber(decoded[0]),
- r: decoded[1].slice(2),
- s: decoded[2].slice(2),
- };
- }
-
- const hash = this.hashContent(content);
- const pubKeyRecovered = secp256k1.recoverPubKey(
- Buffer.from(hash.slice(2), 'hex'),
- vrs,
- vrs.v < 2 ? vrs.v : 1 - (vrs.v % 2),
- );
-
- const publicKeyRecovered = `0x${pubKeyRecovered.encode('hex', false).slice(2)}`;
- const publicHash = sha3.keccak256(Buffer.from(publicKeyRecovered.slice(2), 'hex'));
- return this.toChecksum(`0x${publicHash.slice(-40)}`);
- } catch (e) {
- return undefined;
- }
- }
-
- encodeSignature(_ref) {
- const _ref2 = _slicedToArray(_ref);
- const v = _ref2[0];
- const r = BytesUtilities.pad(32, _ref2[1]);
- const s = BytesUtilities.pad(32, _ref2[2]);
-
- return {
- signature: BytesUtilities.flatten([r, s, v]), r, s, v,
- };
- }
-
- decodeSignature(hex) {
- return [
- BytesUtilities.slice(64, BytesUtilities.length(hex), hex),
- BytesUtilities.slice(0, 32, hex),
- BytesUtilities.slice(32, 64, hex)];
- }
-
- toChecksum(address) {
- var addressHash = sha3.keccak256(address.slice(2));
- var checksumAddress = '0x';
- for (var i = 0; i < 40; i += 1) {
- checksumAddress += parseInt(addressHash[i + 2], 16) > 7 ?
- address[i + 2].toUpperCase() :
- address[i + 2];
- }
- return checksumAddress;
- }
-
- hashContent(content) {
- const message = BytesUtilities.isHexStrict(content) ?
- BytesUtilities.hexToBytes(content) : content;
- const messageBuffer = Buffer.from(message);
- const preamble = `\x19Ethereum Signed Message:\n${message.length}`;
- const preambleBuffer = Buffer.from(preamble);
- const ethMessage = Buffer.concat([preambleBuffer, messageBuffer]);
- return `0x${sha3.keccak256(ethMessage)}`;
- }
-
- getName() {
- return 'Merkle validation';
- }
-}
-
-module.exports = MerkleValidationService;
diff --git a/external/sparqlquery-service.js b/external/sparqlquery-service.js
deleted file mode 100644
index 5699f5290..000000000
--- a/external/sparqlquery-service.js
+++ /dev/null
@@ -1,255 +0,0 @@
-const Engine = require('@comunica/query-sparql').QueryEngine;
-const constants = require('../modules/constants');
-
-class SparqlqueryService {
- constructor(config) {
- this.config = config;
- }
-
- async initialize(logger) {
- this.logger = logger;
- this.logger.info('Sparql Query module initialized successfully');
- this.queryEngine = new Engine();
- this.filtertype = {
- KEYWORD: 'keyword',
- KEYWORDPREFIX: 'keywordPrefix',
- TYPES: 'types',
- ISSUERS: 'issuers',
- };
- const sources = [
- {
- type: 'sparql',
- value: `${this.config.sparqlEndpoint}`,
- },
- ];
-
- this.insertContext = {
- sources,
- destination: {
- type: 'sparql',
- value: `${this.config.sparqlEndpointUpdate}`,
- },
- };
- this.queryContext = {
- sources,
- };
- }
-
- async insert(triples, rootHash) {
- const askQuery = `ASK WHERE { GRAPH <${rootHash}> { ?s ?p ?o } }`;
- const exists = await this.ask(askQuery);
- const insertion = `
- PREFIX schema:
- INSERT DATA
- { GRAPH <${rootHash}>
- { ${triples} }
- }`;
- if (!exists) {
- await this.queryEngine.queryVoid(insertion, this.insertContext);
- return true;
- }
- }
-
- async construct(query) {
- const result = await this.executeQuery(query);
- return result;
- }
-
- async ask(query) {
- const result = await this.queryEngine.queryBoolean(query, this.queryContext);
- return result;
- }
-
- async resolve(uri) {
- const escapedUri = this.cleanEscapeCharacter(uri);
- const query = `PREFIX schema:
- CONSTRUCT { ?s ?p ?o }
- WHERE {
- GRAPH <${constants.DID_PREFIX}:${escapedUri}> {
- ?s ?p ?o
- }
- }`;
- const nquads = await this.construct(query);
- return nquads;
- }
-
- async assertionsByAsset(uri) {
- const query = `PREFIX schema:
- SELECT ?assertionId ?issuer ?timestamp
- WHERE {
- ?assertionId schema:hasUALs "${uri}" ;
- schema:hasTimestamp ?timestamp ;
- schema:hasIssuer ?issuer .
- }
- ORDER BY DESC(?timestamp)`;
- const result = await this.execute(query);
-
- return result;
- }
-
- async findAssertions(nquads) {
- const query = `SELECT ?g
- WHERE {
- GRAPH ?g {
- ${nquads}
- }
- }`;
- let graph = await this.execute(query);
- graph = graph.map((x) => x.g.replace(`${constants.DID_PREFIX}:`, ''));
- if (graph.length && graph[0] === 'http://www.bigdata.com/rdf#nullGraph') {
- return [];
- }
- return graph;
- }
-
- async findAssertionsByKeyword(query, options, localQuery) {
- if (options.prefix && !this.isBoolean(options.prefix)) {
- this.logger.error(`Failed FindassertionsByKeyword: ${options.prefix} is not a boolean`);
- throw new Error('Prefix is not an boolean');
- }
- if (localQuery && !this.isBoolean(localQuery)) {
- this.logger.error(`Failed FindassertionsByKeyword: ${localQuery} is not a boolean`);
- throw new Error('Localquery is not an boolean');
- }
- let limitQuery = '';
- limitQuery = this.createLimitQuery(options);
-
- const publicVisibilityQuery = !localQuery
- ? ' ?assertionId schema:hasVisibility "public" .'
- : '';
- const filterQuery = options.prefix
- ? this.createFilterParameter(query, this.filtertype.KEYWORDPREFIX)
- : this.createFilterParameter(query, this.filtertype.KEYWORD);
-
- const sparqlQuery = `PREFIX schema:
- SELECT distinct ?assertionId
- WHERE {
- ?assertionId schema:hasKeywords ?keyword .
- ${publicVisibilityQuery}
- ${filterQuery}
- }
- ${limitQuery}`;
-
- const result = await this.execute(sparqlQuery);
- return result;
- }
-
- async findAssetsByKeyword(query, options, localQuery) {
- if (options.prefix && !this.isBoolean(options.prefix)) {
- this.logger.error(`Failed FindAssetsByKeyword: ${options.prefix} is not a boolean`);
- // throw new Error('Prefix is not an boolean');
- }
- if (localQuery && !this.isBoolean(localQuery)) {
- this.logger.error(`Failed FindAssetsByKeyword: ${localQuery} is not a boolean`);
- throw new Error('Localquery is not an boolean');
- }
- const escapedQuery = this.cleanEscapeCharacter(query);
- const limitQuery = this.createLimitQuery(options);
-
- const publicVisibilityQuery = !localQuery ? 'schema:hasVisibility "public" ;' : '';
- const filterQuery = options.prefix
- ? this.createFilterParameter(escapedQuery, this.filtertype.KEYWORDPREFIX)
- : this.createFilterParameter(escapedQuery, this.filtertype.KEYWORD);
- const issuerFilter = options.issuers
- ? this.createFilterParameter(options.issuers, this.filtertype.ISSUERS)
- : '';
- const typesFilter = options.types
- ? this.createFilterParameter(options.types, this.filtertype.TYPES)
- : '';
-
- const sparqlQuery = `PREFIX schema:
- SELECT ?assertionId ?assetId
- WHERE {
- ?assertionId schema:hasTimestamp ?latestTimestamp ;
- ${publicVisibilityQuery}
- schema:hasUALs ?assetId .
- {
- SELECT ?assetId (MAX(?timestamp) AS ?latestTimestamp)
- WHERE {
- ?assertionId schema:hasKeywords ?keyword ;
- schema:hasIssuer ?issuer ;
- schema:hasType ?type ;
- schema:hasTimestamp ?timestamp ;
- schema:hasUALs ?assetId
- ${filterQuery}
- ${issuerFilter}
- ${typesFilter}
- }
- GROUP BY ?assetId
- ${limitQuery}
- }
- }`;
- const result = await this.execute(sparqlQuery);
- return result;
- }
-
- async healthCheck() {
- return true;
- }
-
- async executeQuery(query) {
- const result = await this.queryEngine.query(query, this.queryContext);
- const { data } = await this.queryEngine.resultToString(
- result,
- 'application/n-quads',
- this.queryContext,
- );
- let nquads = '';
- for await (const nquad of data) {
- nquads += nquad;
- }
- return nquads;
- }
-
- async execute(query) {
- const result = await this.queryEngine.query(query, this.queryContext);
- const { data } = await this.queryEngine.resultToString(result);
- let response = '';
- for await (const chunk of data) {
- response += chunk;
- }
- return JSON.parse(response);
- }
-
- cleanEscapeCharacter(query) {
- return query.replace(/['|[\]\\]/g, '\\$&');
- }
-
- createFilterParameter(queryParameter, type) {
- const queryParam = this.cleanEscapeCharacter(queryParameter);
-
- switch (type) {
- case this.filtertype.KEYWORD:
- return `FILTER (lcase(?keyword) = '${queryParam}')`;
- case this.filtertype.KEYWORDPREFIX:
- return `FILTER contains(lcase(?keyword),'${queryParam}')`;
- case this.filtertype.ISSUERS:
- return `FILTER (?issuer IN (${JSON.stringify(queryParam).slice(1, -1)}))`;
- case this.filtertype.TYPES:
- return `FILTER (?type IN (${JSON.stringify(queryParam).slice(1, -1)}))`;
- default:
- return '';
- }
- }
-
- createLimitQuery(options) {
- if (!options.limit) {
- return '';
- }
- const queryLimit = Number(options.limit);
- if (Number.isNaN(queryLimit) || !Number.isInteger(queryLimit)) {
- this.logger.error(`Failed creating Limit query: ${options.limit} is not a number`);
- throw new Error('Limit is not a number');
- } else if (Number.isInteger(options.limit) && options.limit < 0) {
- this.logger.error(`Failed creating Limit query: ${options.limit} is negative number`);
- throw new Error('Limit is not a number');
- }
- return `LIMIT ${queryLimit}`;
- }
-
- isBoolean(param) {
- return typeof param === 'boolean' || ['true', 'false'].includes(param);
- }
-}
-
-module.exports = SparqlqueryService;
\ No newline at end of file
diff --git a/external/web3-blockchain-service.js b/external/web3-blockchain-service.js
deleted file mode 100644
index 9bbdca9ef..000000000
--- a/external/web3-blockchain-service.js
+++ /dev/null
@@ -1,227 +0,0 @@
-const Web3 = require('web3');
-const BigNumber = require('big-number');
-const axios = require('axios');
-const DKGContractAbi = require('../build/contracts/DKGcontract.json').abi;
-const UAIRegistryAbi = require('../build/contracts/UAIRegistry.json').abi;
-const constants = require('../modules/constants');
-
-class Web3BlockchainService {
- constructor(config) {
- this.config = config;
- this.gasStationLink = 'https://gasstation-mumbai.matic.today/v2';
- }
-
- async initialize(logger) {
- this.logger = logger;
- this.rpcNumber = 0;
- await this.initializeWeb3();
- await this.initializeContracts();
- }
-
- async initializeWeb3() {
- let tries = 0;
- let isRpcConnected = false;
- while (!isRpcConnected) {
- if (tries >= this.config.rpcEndpoints.length) {
- throw Error('Blockchain initialisation failed');
- }
-
- try {
- this.web3 = new Web3(this.config.rpcEndpoints[this.rpcNumber]);
- isRpcConnected = await this.web3.eth.net.isListening();
- } catch (e) {
- this.logger.warn(
- `Unable to connect to blockchain rpc : ${
- this.config.rpcEndpoints[this.rpcNumber]
- }.`,
- );
- tries += 1;
- this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
- }
- }
- }
-
- async initializeContracts() {
- this.UAIRegistryContract = new this.web3.eth.Contract(
- UAIRegistryAbi,
- this.config.hubContractAddress,
- );
- const DKGContractAddress = await this.UAIRegistryContract.methods
- .getAssertionRegistry()
- .call();
- this.DKGContract = new this.web3.eth.Contract(DKGContractAbi, DKGContractAddress);
- this.logger.debug(
- `Connected to blockchain rpc : ${this.config.rpcEndpoints[this.rpcNumber]}.`,
- );
- }
-
- getPrivateKey() {
- return this.config.privateKey;
- }
-
- getPublicKey() {
- return this.config.publicKey;
- }
-
- async getGasStationPrice() {
- const response = await axios.get(this.gasStationLink).catch((err) => {
- this.logger.warn(err);
- return undefined;
- });
- try {
- return Math.round(response.data.standard.maxFee * 1e9);
- } catch (e) {
- return undefined;
- }
- }
-
- async callContractFunction(contractInstance, functionName, args) {
- let result;
- while (!result) {
- try {
- result = await contractInstance.methods[functionName](...args).call();
- } catch (error) {
- await this.handleError(error, functionName);
- }
- }
-
- return result;
- }
-
- async executeContractFunction(contractInstance, functionName, args) {
- let result;
- while (!result) {
- try {
- const gasPrice = await this.getGasStationPrice();
-
- const gasLimit = await contractInstance.methods[functionName](...args).estimateGas({
- from: this.config.publicKey,
- });
-
- const encodedABI = contractInstance.methods[functionName](...args).encodeABI();
- const tx = {
- from: this.config.publicKey,
- to: contractInstance.options.address,
- data: encodedABI,
- gasPrice: gasPrice || this.web3.utils.toWei('20', 'Gwei'),
- gas: gasLimit || this.web3.utils.toWei('900', 'Kwei'),
- };
-
- const createdTransaction = await this.web3.eth.accounts.signTransaction(
- tx,
- this.config.privateKey,
- );
- result = await this.web3.eth.sendSignedTransaction(
- createdTransaction.rawTransaction,
- );
- } catch (error) {
- await this.handleError(error, functionName);
- }
- }
-
- return result;
- }
-
- async createAssertionRecord(stateCommitHash, rootHash, issuer) {
- const result = await this.executeContractFunction(
- this.DKGContract,
- 'createAssertionRecord',
- [`0x${stateCommitHash}`, `0x${rootHash}`, issuer, new BigNumber(1), new BigNumber(1)],
- );
- return { transactionHash: result.transactionHash, blockchain: this.config.networkId };
- }
-
- async registerAsset(uai, type, alsoKnownAs, stateCommitHash, rootHash, tokenAmount) {
- const result = await this.executeContractFunction(
- this.UAIRegistryContract,
- 'registerAsset',
- [`0x${uai}`, 0, `0x${uai}`, `0x${stateCommitHash}`, `0x${rootHash}`, 1],
- );
- return { transactionHash: result.transactionHash, blockchain: this.config.networkId };
- }
-
- async updateAsset(UAI, newStateCommitHash, rootHash) {
- const result = await this.executeContractFunction(
- this.UAIRegistryContract,
- 'updateAssetState',
- [`0x${UAI}`, `0x${newStateCommitHash}`, `0x${rootHash}`],
- );
- return { transactionHash: result.transactionHash, blockchain: this.config.networkId };
- }
-
- async getAssertionProofs(assertionId) {
- const issuer = await this.callContractFunction(this.DKGContract, 'getAssertionIssuer', [
- `0x${assertionId}`,
- ]);
- const rootHash = await this.callContractFunction(this.DKGContract, 'getAssertionRootHash', [
- `0x${assertionId}`,
- ]);
- return { issuer, rootHash };
- }
-
- async getAssetProofs(ual) {
- const issuer = await this.callContractFunction(
- this.UAIRegistryContract,
- 'getAssetController',
- [`0x${ual}`],
- );
- let assertionId = await this.callContractFunction(
- this.UAIRegistryContract,
- 'getAssetStateCommitHash',
- [`0x${ual}`],
- );
- if (assertionId === '0x0000000000000000000000000000000000000000000000000000000000000000') {
- assertionId = undefined;
- } else {
- assertionId = assertionId.slice(2);
- }
- return { issuer, assertionId };
- }
-
- async healthCheck() {
- try {
- const gasPrice = await this.web3.eth.getGasPrice();
- if (gasPrice) return true;
- } catch (e) {
- this.logger.error({
- msg: `Error on checking blockchain. ${e}`,
- Event_name: constants.ERROR_TYPE.BLOCKCHAIN_CHECK_ERROR,
- });
- return false;
- }
- return false;
- }
-
- async handleError(error, functionName) {
- let isRpcError = false;
- try {
- await this.web3.eth.net.isListening();
- } catch (rpcError) {
- isRpcError = true;
- this.logger.warn(
- `Unable to execute smart contract function ${functionName} using blockchain rpc : ${
- this.config.rpcEndpoints[this.rpcNumber]
- }.`,
- );
- await this.restartService();
- }
- if (!isRpcError) throw error;
- }
-
- async restartService() {
- this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
- this.logger.warn(
- `There was an issue with current blockchain rpc. Connecting to ${
- this.config.rpcEndpoints[this.rpcNumber]
- }`,
- );
- await this.initializeWeb3();
- await this.initializeContracts();
- }
-
- getName() {
- return 'Web3 module';
- }
-}
-
-module.exports = Web3BlockchainService;
diff --git a/index.js b/index.js
index fc0c0cd73..1d8268a7a 100644
--- a/index.js
+++ b/index.js
@@ -1,3 +1,4 @@
+/* eslint-disable no-console */
require('dotenv').config();
const fs = require('fs-extra');
const path = require('path');
@@ -16,7 +17,7 @@ process.env.NODE_ENV =
try {
if (process.env.NODE_ENV === 'development' && process.argv.length === 3) {
const configurationFilename = process.argv[2];
- userConfig = JSON.parse(fs.readFileSync(process.argv[2]));
+ userConfig = JSON.parse(await fs.promises.readFile(process.argv[2]));
userConfig.configFilename = configurationFilename;
}
} catch (error) {
@@ -29,24 +30,25 @@ process.env.NODE_ENV =
} catch (e) {
console.error(`Error occurred while start ot-node, error message: ${e}. ${e.stack}`);
console.error(`Trying to recover from older version`);
+ if (process.env.NODE_ENV !== 'development') {
+ const rootPath = path.join(appRootPath.path, '..');
+ const oldVersionsDirs = (await fs.promises.readdir(rootPath, { withFileTypes: true }))
+ .filter((dirent) => dirent.isDirectory())
+ .map((dirent) => dirent.name)
+ .filter((name) => semver.valid(name) && !appRootPath.path.includes(name));
- const rootPath = path.join(appRootPath.path, '..');
- const oldVersionsDirs = (await fs.promises.readdir(rootPath, { withFileTypes: true }))
- .filter((dirent) => dirent.isDirectory())
- .map((dirent) => dirent.name)
- .filter((name) => semver.valid(name) && !appRootPath.path.includes(name));
+ if (oldVersionsDirs.length === 0) {
+ console.error(
+ `Failed to start OT-Node, no backup code available. Error message: ${e.message}`,
+ );
+ process.exit(1);
+ }
- if (oldVersionsDirs.length === 0) {
- console.error(
- `Failed to start OT-Node, no backup code available. Error message: ${e.message}`,
- );
- process.exit(1);
+ const oldVersion = oldVersionsDirs.sort(semver.compare).pop();
+ const oldversionPath = path.join(rootPath, oldVersion);
+ execSync(`ln -sfn ${oldversionPath} ${rootPath}/current`);
+ await fs.promises.rm(appRootPath.path, { force: true, recursive: true });
}
-
- const oldVersion = oldVersionsDirs.sort(semver.compare).pop();
- const oldversionPath = path.join(rootPath, oldVersion);
- execSync(`ln -sfn ${oldversionPath} ${rootPath}/current`);
- await fs.promises.rm(appRootPath.path, { force: true, recursive: true });
process.exit(1);
}
})();
diff --git a/installer/data/blazegraph.service b/installer/data/blazegraph.service
index b935480f0..2cc215a7f 100644
--- a/installer/data/blazegraph.service
+++ b/installer/data/blazegraph.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/blazegraph.service
[Unit]
-Description=Blazegraph - OriginTrail V6 Stage 1 Beta Node
+Description=OtBlazegraph - OriginTrail V6 Stage 1 Beta Node
Documentation=https://github.com/OriginTrail/ot-node
After=network.target
diff --git a/installer/data/fuseki.service b/installer/data/fuseki.service
index 97da93b98..e692969a8 100644
--- a/installer/data/fuseki.service
+++ b/installer/data/fuseki.service
@@ -1,7 +1,7 @@
#/lib/systemd/system/fuseki.service
[Unit]
-Description=Fuseki - OriginTrail V6 Stage 1 Beta Node
+Description=OtFuseki - OriginTrail V6 Stage 1 Beta Node
Documentation=https://github.com/OriginTrail/ot-node
After=network.target
diff --git a/installer/installer.sh b/installer/installer.sh
index d36303724..3d95608df 100755
--- a/installer/installer.sh
+++ b/installer/installer.sh
@@ -370,6 +370,19 @@ else
echo -e "${GREEN}SUCCESS${NC}"
fi
+echo -n "Adding sql repository password to .env: "
+
+read -p "Enter sql repository password: " password
+OUTPUT=$(echo "REPOSITORY_PASSWORD=$password" > $OTNODE_DIR/.env)
+if [[ $? -ne 0 ]]; then
+ echo -e "${RED}FAILED${NC}"
+ echo "There was an error adding the env variable."
+ echo $OUTPUT
+ exit 1
+else
+ echo -e "${GREEN}SUCCESS${NC}"
+fi
+
echo -n "Creating a local operational database: "
mysql -u root -e "CREATE DATABASE operationaldb /*\!40100 DEFAULT CHARACTER SET utf8 */;"
@@ -380,7 +393,7 @@ if [[ $? -ne 0 ]]; then
exit 1
fi
-mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';"
+mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$password';"
if [[ $? -ne 0 ]]; then
echo -e "${RED}FAILED${NC}"
echo "There was an error updating mysql.user set plugin (Step 2 of 2)."
@@ -477,7 +490,7 @@ fi
echo -n "Adding NODE_ENV=testnet to .env: "
-OUTPUT=$(echo "NODE_ENV=testnet" > .env)
+OUTPUT=$(echo "NODE_ENV=testnet" >> $OTNODE_DIR/.env)
if [[ $? -ne 0 ]]; then
echo -e "${RED}FAILED${NC}"
echo "There was an error adding the env variable."
@@ -487,45 +500,58 @@ else
echo -e "${GREEN}SUCCESS${NC}"
fi
-echo "Creating default noderc config${N1}"
-
-read -p "Enter the operational wallet address: " NODE_WALLET
-echo "Node wallet: $NODE_WALLET"
-
-read -p "Enter the private key: " NODE_PRIVATE_KEY
-echo "Node private key: $NODE_PRIVATE_KEY"
-
-CONFIG_DIR=$OTNODE_DIR/../
-
-cp $OTNODE_DIR/.origintrail_noderc_example $CONFIG_DIR/.origintrail_noderc
-
-jq --arg newval "$NODE_WALLET" '.blockchain[].publicKey |= $newval' $CONFIG_DIR/.origintrail_noderc >> $CONFIG_DIR/origintrail_noderc_temp
-mv $CONFIG_DIR/origintrail_noderc_temp $CONFIG_DIR/.origintrail_noderc
-
-jq --arg newval "$NODE_PRIVATE_KEY" '.blockchain[].privateKey |= $newval' $CONFIG_DIR/.origintrail_noderc >> $CONFIG_DIR/origintrail_noderc_temp
-mv $CONFIG_DIR/origintrail_noderc_temp $CONFIG_DIR/.origintrail_noderc
-
+tripleStore=""
if [[ $DATABASE = "blazegraph" ]]; then
- jq '.graphDatabase |= {"implementation": "Blazegraph", "url": "http://localhost:9999/blazegraph"} + .' $CONFIG_DIR/.origintrail_noderc >> $CONFIG_DIR/origintrail_noderc_temp
- mv $CONFIG_DIR/origintrail_noderc_temp $CONFIG_DIR/.origintrail_noderc
+ tripleStore="ot-blazegraph"
fi
-
if [[ $DATABASE = "fuseki" ]]; then
- jq '.graphDatabase |= {"name": "node0", "implementation": "Fuseki", "url": "http://localhost:3030"} + .' $CONFIG_DIR/.origintrail_noderc >> $CONFIG_DIR/origintrail_noderc_temp
- mv $CONFIG_DIR/origintrail_noderc_temp $CONFIG_DIR/.origintrail_noderc
+ tripleStore="ot-fuseki"
fi
-echo -n "Running DB migrations: "
-
-OUTPUT=$(npx sequelize --config=./config/sequelizeConfig.js db:migrate 2>&1)
-if [[ $? -ne 0 ]]; then
- echo -e "${RED}FAILED${NC}"
- echo "There was an error running the db migrations."
- echo $OUTPUT
- exit 1
-else
- echo -e "${GREEN}SUCCESS${NC}"
-fi
+CONFIG_DIR=$OTNODE_DIR/..
+touch $CONFIG_DIR/.origintrail_noderc
+jq --null-input --arg tripleStore "$tripleStore" '{"logLevel": "trace", "auth": {"ipWhitelist": ["::1", "127.0.0.1"]}, "modules": {"tripleStore":{"defaultImplementation": $tripleStore}}}' > $CONFIG_DIR/.origintrail_noderc
+
+
+#blockchains=("otp" "polygon")
+#for ((i = 0; i < ${#blockchains[@]}; ++i));
+#do
+ # read -p "Do you want to connect your node to blockchain: ${blockchains[$i]} ? [Y]Yes [N]No [E]Exit: " choice
+# case "$choice" in
+ # [Yy]* )
+
+# read -p "Enter your substrate operational wallet address: " SUBSTRATE_OPERATIONAL_WALLET
+# echo "Substrate operational wallet address: $SUBSTRATE_OPERATIONAL_WALLET"
+#
+# read -p "Enter your substrate operational wallet private key: " SUBSTRATE_OPERATIONAL_PRIVATE_KEY
+# echo "Substrate operational wallet private key: $SUBSTRATE_OPERATIONAL_PRIVATE_KEY"
+
+ read -p "Enter your EVM operational wallet address: " EVM_OPERATIONAL_WALLET
+ echo "EVM operational wallet address: $EVM_OPERATIONAL_WALLET"
+
+ read -p "Enter your EVM operational wallet private key: " EVM_OPERATIONAL_PRIVATE_KEY
+ echo "EVM operational wallet private key: $EVM_OPERATIONAL_PRIVATE_KEY"
+
+# read -p "Enter your substrate management wallet address: " SUBSTRATE_MANAGEMENT_WALLET
+# echo "Substrate management wallet address: $SUBSTRATE_MANAGEMENT_WALLET"
+#
+# read -p "Enter your substrate management wallet private key: " SUBSTRATE_MANAGEMENT_WALLET_PRIVATE_KEY
+# echo "Substrate management wallet private key: $SUBSTRATE_MANAGEMENT_WALLET_PRIVATE_KEY"
+
+ read -p "Enter your EVM management wallet address: " EVM_MANAGEMENT_WALLET
+ echo "EVM management wallet address: $EVM_MANAGEMENT_WALLET"
+
+# read -p "Enter your EVM management wallet private key: " EVM_MANAGEMENT_PRIVATE_KEY
+# echo "EVM management wallet private key: $EVM_MANAGEMENT_PRIVATE_KEY"
+
+ jq --arg blockchain "otp" --arg evmOperationalWallet "$EVM_OPERATIONAL_WALLET" --arg evmOperationalWalletPrivateKey "$EVM_OPERATIONAL_PRIVATE_KEY" --arg evmManagementWallet "$EVM_MANAGEMENT_WALLET" '.modules.blockchain.implementation[$blockchain].config |= { "evmOperationalWalletPublicKey": $evmOperationalWallet, "evmOperationalWalletPrivateKey": $evmOperationalWalletPrivateKey, "evmManagementWalletPublicKey": $evmManagementWallet} + .' $CONFIG_DIR/.origintrail_noderc > $CONFIG_DIR/origintrail_noderc_tmp
+ mv $CONFIG_DIR/origintrail_noderc_tmp $CONFIG_DIR/.origintrail_noderc
+ # ;;
+ # [Nn]* ) ;;
+ # [Ee]* ) echo "Installer stopped by user"; exit;;
+ # * ) ((--i));echo "Please make a valid choice and try again.";;
+ #esac
+#done
echo -n "Copying otnode service file: "
diff --git a/logs/telhub_logs.csv b/logs/telhub_logs.csv
deleted file mode 100644
index d4cb90609..000000000
--- a/logs/telhub_logs.csv
+++ /dev/null
@@ -1 +0,0 @@
-Id_node,Id_operation,Operation_name,Event_name,Event_time,Event_value1,Event_value2,Event_value3,Event_value4
diff --git a/migrations/20211117005500-create-commands.js b/migrations/20211117005500-create-commands.js
deleted file mode 100644
index faaeb2c1a..000000000
--- a/migrations/20211117005500-create-commands.js
+++ /dev/null
@@ -1,76 +0,0 @@
-module.exports = {
- up: async (queryInterface, Sequelize) => {
- await queryInterface.createTable('commands', {
- id: {
- allowNull: false,
- primaryKey: true,
- type: Sequelize.STRING,
- },
- name: {
- type: Sequelize.STRING,
- allowNull: false,
- },
- data: {
- type: Sequelize.JSON,
- allowNull: false,
- },
- sequence: {
- type: Sequelize.JSON,
- allowNull: true,
- },
- ready_at: {
- type: Sequelize.INTEGER,
- allowNull: false,
- },
- delay: {
- type: Sequelize.INTEGER,
- allowNull: false,
- },
- started_at: {
- type: Sequelize.INTEGER,
- allowNull: true,
- },
- deadline_at: {
- type: Sequelize.INTEGER,
- allowNull: true,
- },
- period: {
- type: Sequelize.INTEGER,
- allowNull: true,
- },
- status: {
- type: Sequelize.STRING,
- allowNull: false,
- },
- message: {
- type: Sequelize.STRING,
- allowNull: true,
- },
- parent_id: {
- type: Sequelize.STRING,
- allowNull: true,
- },
- retries: {
- type: Sequelize.INTEGER,
- allowNull: true,
- },
- transactional: {
- type: Sequelize.INTEGER,
- allowNull: false,
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- });
- },
- down: async (queryInterface, Sequelize) => {
- await queryInterface.dropTable('commands');
- },
-};
diff --git a/migrations/20211117005504-create-handler_ids.js b/migrations/20211117005504-create-handler_ids.js
deleted file mode 100644
index 9f717910f..000000000
--- a/migrations/20211117005504-create-handler_ids.js
+++ /dev/null
@@ -1,31 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.createTable('handler_ids', {
- handler_id: {
- allowNull: false,
- primaryKey: true,
- type: Sequelize.STRING,
- },
- data: {
- allowNull: true,
- type: Sequelize.TEXT,
- },
- status: {
- allowNull: false,
- type: Sequelize.STRING,
- },
- timestamp: {
- type: Sequelize.BIGINT,
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- }),
- down: (queryInterface, Sequelize) => queryInterface.dropTable('handler_ids'),
-};
diff --git a/migrations/20211117005505-update-handler_ids.js b/migrations/20211117005505-update-handler_ids.js
deleted file mode 100644
index c8496e81a..000000000
--- a/migrations/20211117005505-update-handler_ids.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.changeColumn(
- 'handler_ids',
- 'data',
- {
- type: Sequelize.TEXT('long'),
- allowNull: true,
- },
- ),
- down: (queryInterface, Sequelize) => queryInterface.changeColumn(
- 'handler_ids',
- 'data',
- {
- type: Sequelize.TEXT,
- allowNull: true,
- },
- ),
-};
diff --git a/migrations/20220406102807-update-assertions.js b/migrations/20220406102807-update-assertions.js
deleted file mode 100644
index cb867e9ff..000000000
--- a/migrations/20220406102807-update-assertions.js
+++ /dev/null
@@ -1,29 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return Promise.all([queryInterface.addColumn(
- 'assertions',
- 'triple_store',
- {
- type: Sequelize.STRING,
- allowNull: true,
- }
- ),
- queryInterface.addColumn(
- 'assertions',
- 'status',
- {
- type: Sequelize.STRING,
- allowNull: true,
- }
- )])},
-
- down: (queryInterface, Sequelize) => {
- return Promise.all([queryInterface.removeColumn(
- 'assertions',
- 'triple_store',
- ),
- queryInterface.removeColumn(
- 'assertions',
- 'status',
- )])}
-};
diff --git a/models/assertion.js b/models/assertion.js
deleted file mode 100644
index c25660952..000000000
--- a/models/assertion.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const { Model } = require('sequelize');
-
-module.exports = (sequelize, DataTypes) => {
- class assertions extends Model {
- static associate(models) {
- assertions._models = models;
- // define association here
- }
- }
- assertions.init({
- hash: {
- type: DataTypes.STRING,
- primaryKey: true,
- allowNull: false,
- },
- owner: DataTypes.STRING,
- signature: DataTypes.TEXT,
- topics: DataTypes.STRING,
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- triple_store: {
- type: DataTypes.STRING,
- allowNull: true,
- },
- status: {
- type: DataTypes.STRING,
- allowNull: true,
- },
- }, {
- sequelize,
- modelName: 'assertions',
- });
- return assertions;
-};
diff --git a/models/commands.js b/models/commands.js
deleted file mode 100644
index 3ded96ca2..000000000
--- a/models/commands.js
+++ /dev/null
@@ -1,41 +0,0 @@
-const { Model } = require('sequelize');
-const uuid = require('uuid');
-
-module.exports = (sequelize, DataTypes) => {
- class commands extends Model {
- static associate(models) {
- commands._models = models;
- // define association here
- }
- }
- commands.init({
- id: {
- type: DataTypes.UUID,
- primaryKey: true,
- defaultValue: () => uuid.v4(),
- },
- name: DataTypes.STRING,
- data: DataTypes.JSON,
- sequence: DataTypes.JSON,
- ready_at: DataTypes.INTEGER,
- delay: DataTypes.INTEGER,
- started_at: DataTypes.INTEGER,
- deadline_at: DataTypes.INTEGER,
- period: DataTypes.INTEGER,
- status: DataTypes.STRING,
- message: DataTypes.STRING,
- parent_id: DataTypes.UUID,
- transactional: DataTypes.BOOLEAN,
- retries: {
- type: DataTypes.INTEGER,
- defaultValue: 0,
- },
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- }, {
- sequelize,
- modelName: 'commands',
- timestamps: false,
- });
- return commands;
-};
diff --git a/models/handler_ids.js b/models/handler_ids.js
deleted file mode 100644
index ae3cca011..000000000
--- a/models/handler_ids.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const { v4: uuidv4 } = require('uuid');
-
-module.exports = (sequelize, DataTypes) => {
- const handler_ids = sequelize.define('handler_ids', {
- handler_id: {
- type: DataTypes.UUID,
- primaryKey: true,
- defaultValue: () => uuidv4(),
- },
- data: DataTypes.TEXT,
- status: DataTypes.STRING,
- timestamp: {
- type: DataTypes.BIGINT,
- defaultValue: () => Date.now(),
- },
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- }, {});
- handler_ids.associate = (models) => {
- // associations can be defined here
- };
- return handler_ids;
-};
diff --git a/models/index.js b/models/index.js
deleted file mode 100644
index eb40b315f..000000000
--- a/models/index.js
+++ /dev/null
@@ -1,49 +0,0 @@
-require('dotenv').config();
-
-const fs = require('fs');
-const path = require('path');
-const Sequelize = require('sequelize');
-const mysql = require('mysql2');
-
-const basename = path.basename(__filename);
-const config = require(`${__dirname}/../config/sequelizeConfig`);
-const db = {};
-let sequelize = {};
-const OPERATIONAL_DB_NAME = process.env.OPERATIONAL_DB_NAME || 'operationaldb';
-const OPERATIONAL_DB_PASSWORD = process.env.OPERATIONAL_DB_PASSWORD || '';
-
-config.database = OPERATIONAL_DB_NAME;
-config.password = OPERATIONAL_DB_PASSWORD;
-
-const connection = mysql.createConnection({
- host: config.host,
- port: config.port,
- user: config.username,
- password: OPERATIONAL_DB_PASSWORD,
-});
-connection.query(`CREATE DATABASE IF NOT EXISTS \`${OPERATIONAL_DB_NAME}\`;`);
-
-if (config.use_env_variable) {
- sequelize = new Sequelize(process.env[config.use_env_variable], config);
-} else {
- sequelize = new Sequelize(config.database, config.username, config.password, config);
-}
-
-fs
- .readdirSync(__dirname)
- .filter((file) => (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'))
- .forEach((file) => {
- const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
- db[model.name] = model;
- });
-
-Object.keys(db).forEach((modelName) => {
- if (db[modelName].associate) {
- db[modelName].associate(db);
- }
-});
-
-db.sequelize = sequelize;
-db.Sequelize = Sequelize;
-
-module.exports = db;
diff --git a/models/jobs.js b/models/jobs.js
deleted file mode 100644
index c5c4a3294..000000000
--- a/models/jobs.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const { Model } = require('sequelize');
-const uuid = require('uuid');
-
-module.exports = (sequelize, DataTypes) => {
- class jobs extends Model {
- static associate(models) {
- jobs._models = models;
- // define association here
- }
- }
- jobs.init({
- id: {
- type: DataTypes.UUID,
- primaryKey: true,
- defaultValue: () => uuid.v4(),
- },
- publisher: DataTypes.STRING,
- assertion_hash: DataTypes.STRING,
- tx_hash: DataTypes.STRING,
- signature: DataTypes.TEXT,
- blockchain_id: DataTypes.STRING,
- published_to: DataTypes.TEXT,
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- }, {
- sequelize,
- modelName: 'jobs',
- });
- return jobs;
-};
diff --git a/modules/CalculateHash.js b/modules/CalculateHash.js
deleted file mode 100644
index 068101bca..000000000
--- a/modules/CalculateHash.js
+++ /dev/null
@@ -1,14 +0,0 @@
-const { sha3_256 } = require('js-sha3');
-
-/**
- * Calculating data hash of dataset using sha3-256.
- * Returns data hash value
- @param dataset for which is calculated data hash
- */
-function calculateDataHash(dataset) {
- return `0x${sha3_256(dataset, null, 0)}`;
-}
-
-module.exports = {
- calculateDataHash,
-};
diff --git a/modules/command/common/cleaner-command.js b/modules/command/common/cleaner-command.js
deleted file mode 100644
index 5f443d104..000000000
--- a/modules/command/common/cleaner-command.js
+++ /dev/null
@@ -1,41 +0,0 @@
-const Command = require('../command');
-const Models = require('../../../models/index');
-const constants = require('../../constants');
-
-/**
- * Removes commands that have status: completed, failed, expired
- */
-class CleanerCommand extends Command {
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- await Models.commands.destroy({
- where: {
- status: { [Models.Sequelize.Op.in]: ['COMPLETED', 'FAILED', 'EXPIRED'] },
- started_at: { [Models.Sequelize.Op.lte]: Date.now() },
- },
- });
- return Command.repeat();
- }
-
- /**
- * Builds default command
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'cleanerCommand',
- data: {
- },
- period: constants.DEFAULT_COMMAND_CLEANUP_TIME_MILLS,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = CleanerCommand;
diff --git a/modules/command/common/handler_ids_cleaner_command.js b/modules/command/common/handler_ids_cleaner_command.js
deleted file mode 100644
index 94ef81b7c..000000000
--- a/modules/command/common/handler_ids_cleaner_command.js
+++ /dev/null
@@ -1,75 +0,0 @@
-const Command = require('../command');
-const Models = require('../../../models/index');
-const constants = require('../../constants');
-
-/**
- * Removes handler id entries in database and cached files
- */
-class HandlerIdsCleanerCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.fileService = ctx.fileService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const timeToBeDeleted = Date.now() - constants.HANDLER_IDS_COMMAND_CLEANUP_TIME_MILLS;
- Models.handler_ids.findAll({
- where: {
- timestamp: { [Models.Sequelize.Op.lt]: timeToBeDeleted },
- status: { [Models.Sequelize.Op.in]: ['COMPLETED', 'FAILED'] },
- },
- }).then((handlersToBeDeleted) => {
- handlersToBeDeleted.forEach((handler) => {
- const handlerId = handler.handler_id;
- Models.handler_ids.destroy({
- where: {
- handler_id: handlerId,
- },
- }).catch((error) => {
- this.logger.warn(`Failed to clean handler ids table: error: ${error.message}`);
- });
- const filePath = this.fileService.getHandlerIdDocumentPath(handlerId);
- this.fileService.removeFile(filePath).catch((error) => {
- this.logger.warn(`Failed to remove handler id cache file: error: ${error.message}`);
- });
- });
- }).catch((error) => {
- this.logger.warn(`Failed to clean handler ids table: error: ${error.message}`);
- });
-
- return Command.repeat();
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param error
- */
- async recover(command, error) {
- this.logger.warn(`Failed to clean handler ids table: error: ${error.message}`);
- return Command.repeat();
- }
-
- /**
- * Builds default command
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'handlerIdsCleanerCommand',
- period: constants.HANDLER_IDS_COMMAND_CLEANUP_TIME_MILLS,
- data: {},
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = HandlerIdsCleanerCommand;
diff --git a/modules/command/common/keep-alive-command.js b/modules/command/common/keep-alive-command.js
deleted file mode 100644
index d2cec71da..000000000
--- a/modules/command/common/keep-alive-command.js
+++ /dev/null
@@ -1,106 +0,0 @@
-const { v1: uuidv1 } = require('uuid');
-const PeerId = require('peer-id');
-const axios = require('axios');
-const fs = require('fs');
-const Command = require('../command');
-const pjson = require('../../../package.json');
-const Models = require('../../../models/index');
-const constants = require('../../constants');
-
-class KeepAliveCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.config = ctx.config;
- this.validationService = ctx.validationService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { message } = command.data;
-
- const Id_operation = uuidv1();
- this.logger.emit({
- msg: message,
- Event_name: 'keep_alive',
- Operation_name: 'KeepAlive',
- Id_operation,
- });
-
- const signalingMessage = {
- nodeVersion: pjson.version,
- autoUpdate: { enabled: this.config.modules.autoUpdater.enabled },
- telemetry: {
- enabled: this.config.telemetryHub.enabled,
- },
- };
- try {
- signalingMessage.issuerWallet = this.config.blockchain[0].publicKey;
- signalingMessage.kademliaNodeId = this.config.network.peerId._idB58String;
- signalingMessage.nodeVersion = pjson.version;
- signalingMessage.telemetry.latestAssertions = (
- await Models.assertions.findAll({
- limit: 5,
- order: [['created_at', 'DESC']],
- attributes: ['hash', 'topics', 'created_at', 'triple_store', 'status'],
- })
- ).map((x) => ({
- assertionId: x.dataValues.hash,
- keyword: x.dataValues.topics,
- publishTimestamp: x.dataValues.created_at,
- tripleStore: x.dataValues.triple_store,
- status: x.dataValues.status,
- }));
- } catch (e) {
- this.logger.error({
- msg: `An error has occurred with signaling data error: ${e}, stack: ${e.stack}`,
- Event_name: constants.ERROR_TYPE.KEEP_ALIVE_ERROR,
- });
- }
-
- const proof = {};
- proof.hash = this.validationService.calculateHash(signalingMessage);
- proof.signature = this.validationService.sign(proof.hash);
-
- signalingMessage.proof = proof;
-
- const config = {
- method: 'post',
- url: 'https://signum.origintrail.io:3000/signal',
- headers: {
- 'Content-Type': 'application/json',
- },
- data: JSON.stringify(signalingMessage),
- };
-
- const that = this;
- axios(config).catch((e) => {
- that.handleError(uuidv1(), e, constants.ERROR_TYPE.KEEP_ALIVE_ERROR, false);
- });
- return Command.repeat();
- }
-
- /**
- * Builds default dcConvertToOtJsonCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'keepAliveCommand',
- delay: 0,
- data: {
- message: 'OT-Node is alive...',
- },
- period: 15 * 60 * 1000,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = KeepAliveCommand;
diff --git a/modules/command/common/send-telemetry-command.js b/modules/command/common/send-telemetry-command.js
deleted file mode 100644
index ebcb0fd13..000000000
--- a/modules/command/common/send-telemetry-command.js
+++ /dev/null
@@ -1,113 +0,0 @@
-const Command = require('../command');
-const constants = require('../../constants');
-const Models = require('../../../models/index');
-const {v1: uuidv1} = require("uuid");
-
-class SendTelemetryCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.config = ctx.config;
- this.publishService = ctx.publishService;
- this.telemetryHubModuleManager = ctx.telemetryHubModuleManager;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- if (!this.config.telemetryHub.enabled) {
- return Command.empty();
- }
-
- const operationId = uuidv1();
-
- this.telemetryHubModuleManager.aggregateTelemetryData()
- .then((jsonld) => {
- if (jsonld) {
- this.logger.restart();
- this.initializeTelemetryPublish(operationId);
- Models.handler_ids.create({
- status: 'PENDING',
- }).then((insertedObject) => {
- const fileContent = JSON.stringify(jsonld);
- const keywords = [`ot-telemetry-${Math.floor(new Date() / (60 * 1000))}`];
- this.logger.emit({
- msg: 'Finished measuring execution of preparing arguments for publishing',
- Event_name: 'publish_prep_args_end',
- Operation_name: 'publish_prep_args',
- Id_operation: operationId,
- });
- this.publishService.publish(fileContent, '.json', keywords, 'public', undefined, insertedObject.dataValues.handler_id, operationId, true);
- });
- }
- })
- .catch((e) => {
- this.handleError(e.message);
- });
-
- return Command.repeat();
- }
-
- initializeTelemetryPublish(operationId) {
- this.logger.emit({
- msg: 'Started measuring execution of publish command',
- Event_name: 'publish_start',
- Operation_name: 'publish',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of check arguments for publishing',
- Event_name: 'publish_init_start',
- Operation_name: 'publish_init',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Finished measuring execution of check arguments for publishing',
- Event_name: 'publish_init_end',
- Operation_name: 'publish_init',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of preparing arguments for publishing',
- Event_name: 'publish_prep_args_start',
- Operation_name: 'publish_prep_args',
- Id_operation: operationId,
- });
- }
-
- async recover(command, err) {
- await this.handleError(err);
-
- return Command.retry();
- }
-
- async handleError(error) {
- this.logger.error({
- msg: `Error while sending telemetry data to Telemetry hub: ${error}. ${error.stack}`,
- Event_name: constants.ERROR_TYPE.SENDING_TELEMETRY_DATA_ERROR,
- });
- }
-
- /**
- * Builds default sendTelemetryCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'sendTelemetryCommand',
- delay: 0,
- data: {
- message: '',
- },
- period: 60 * 60 * 1000, // 1 hour
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = SendTelemetryCommand;
diff --git a/modules/command/common/test-command.js b/modules/command/common/test-command.js
deleted file mode 100644
index 95ed4ab44..000000000
--- a/modules/command/common/test-command.js
+++ /dev/null
@@ -1,40 +0,0 @@
-const Command = require('../command');
-
-class TestCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { message } = command.data;
- await this.logger.info(message);
-
- return Command.repeat();
- }
-
- /**
- * Builds default dcConvertToOtJsonCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'testCommand',
- delay: 0,
- data: {
- message: 'Node is alive',
- },
- period: 5 * 60 * 1000,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = TestCommand;
diff --git a/modules/command/publish/insert-assertion-command.js b/modules/command/publish/insert-assertion-command.js
deleted file mode 100644
index 48d03ca3b..000000000
--- a/modules/command/publish/insert-assertion-command.js
+++ /dev/null
@@ -1,74 +0,0 @@
-const Command = require('../command');
-const constants = require('../../constants');
-
-class InsertAssertionCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.dataService = ctx.dataService;
- this.fileService = ctx.fileService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { documentPath, handlerId, operationId } = command.data;
-
- this.logger.emit({
- msg: 'Started measuring execution of storing publishing data into local triple store',
- Event_name: 'publish_local_store_start',
- Operation_name: 'publish_local_store',
- Id_operation: operationId,
- });
- const { nquads, assertion } = await this.fileService.loadJsonFromFile(documentPath);
-
- try {
- await this.dataService.insert(nquads.join('\n'), `${constants.DID_PREFIX}:${assertion.id}`);
- this.logger.info(`Assertion ${assertion.id} has been successfully inserted`);
- this.logger.emit({
- msg: 'Finished measuring execution of storing publishing data into local triple store',
- Event_name: 'publish_local_store_end',
- Operation_name: 'publish_local_store',
- Id_operation: operationId,
- });
- } catch (e) {
- await this.handleError(handlerId, e, constants.ERROR_TYPE.INSERT_ASSERTION_ERROR, true);
- return Command.empty();
- }
-
- return this.continueSequence(command.data, command.sequence);
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param err
- */
- async recover(command, err) {
- const {
- handlerId,
- } = command.data;
- await this.handleError(handlerId, err, constants.ERROR_TYPE.INSERT_ASSERTION_ERROR, true);
-
- return Command.empty();
- }
-
- /**
- * Builds default insertAssertionCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'insertAssertionCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = InsertAssertionCommand;
diff --git a/modules/command/publish/prepare-assertion-for-publish.js b/modules/command/publish/prepare-assertion-for-publish.js
deleted file mode 100644
index 8ae28bfa7..000000000
--- a/modules/command/publish/prepare-assertion-for-publish.js
+++ /dev/null
@@ -1,171 +0,0 @@
-const Command = require('../command');
-const Models = require('../../../models');
-const { ERROR_TYPE, PUBLISH_METHOD } = require('../../constants');
-
-class PrepareAssertionForPublish extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.dataService = ctx.dataService;
- this.fileService = ctx.fileService;
- this.workerPool = ctx.workerPool;
- this.validationService = ctx.validationService;
- this.workerPool = ctx.workerPool;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const {
- fileExtension,
- keywords,
- visibility,
- method,
- ual,
- handlerId,
- operationId,
- isTelemetry,
- } = command.data;
-
- let { documentPath } = command.data;
- const rawAssertion = await this.fileService.readFileOnPath(documentPath);
- let assertion;
- let nquads;
- try {
- const result = await this.dataService.canonize(rawAssertion, fileExtension);
- assertion = result.assertion;
- nquads = result.nquads;
- } catch (error) {
- this.handleError(handlerId, error, ERROR_TYPE.PREPARE_ASSERTION_ERROR, true);
- return Command.empty();
- }
-
- this.logger.emit({
- msg: 'Finished measuring execution of data canonization',
- Event_name: 'publish_canonization_end',
- Operation_name: 'publish_canonization',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of generate metadata',
- Event_name: 'publish_generate_metadata_start',
- Operation_name: 'publish_generate_metadata',
- Id_operation: operationId,
- });
- assertion.metadata.issuer = this.validationService.getIssuer();
- assertion.metadata.visibility = visibility;
- assertion.metadata.keywords = keywords;
- assertion.metadata.keywords.sort();
-
- if (method === PUBLISH_METHOD.PROVISION) {
- const calculatedUal = this.validationService.calculateHash(
- assertion.metadata.timestamp + assertion.metadata.type + assertion.metadata.issuer,
- );
- assertion.metadata.UALs = [calculatedUal];
- } else if (method === PUBLISH_METHOD.UPDATE) {
- assertion.metadata.UALs = [ual];
- }
-
- assertion.metadata.dataHash = this.validationService.calculateHash(assertion.data);
- assertion.metadataHash = this.validationService.calculateHash(assertion.metadata);
- assertion.id = this.validationService.calculateHash(
- assertion.metadataHash + assertion.metadata.dataHash,
- );
- assertion.signature = this.validationService.sign(assertion.id);
-
- const processedNquads = await this.dataService.appendMetadata(nquads, assertion);
-
- assertion.rootHash = this.validationService.calculateRootHash(processedNquads);
-
- if (ual !== undefined) {
- this.logger.info(`UAL: ${ual}`);
- }
- this.logger.info(`Assertion ID: ${assertion.id}`);
- this.logger.info(`Assertion metadataHash: ${assertion.metadataHash}`);
- this.logger.info(`Assertion dataHash: ${assertion.metadata.dataHash}`);
- this.logger.info(`Assertion rootHash: ${assertion.rootHash}`);
- this.logger.info(`Assertion signature: ${assertion.signature}`);
- this.logger.info(`Assertion length in N-QUADS format: ${nquads.length}`);
- this.logger.info(`Keywords: ${keywords}`);
- this.logger.emit({
- msg: assertion.id,
- Event_name: 'publish_assertion_id',
- Operation_name: 'publish_assertion_id',
- Id_operation: operationId,
- });
-
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- documentPath = await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- await this.workerPool.exec('JSONStringify', [
- {
- nquads: processedNquads,
- assertion,
- },
- ]),
- );
-
- // update handler id data with assertion
- const handlerData = {
- id: assertion.id,
- rootHash: assertion.rootHash,
- signature: assertion.signature,
- metadata: assertion.metadata,
- };
-
- await Models.handler_ids.update(
- {
- data: JSON.stringify(handlerData),
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
-
- return this.continueSequence(
- {
- documentPath,
- handlerId,
- method,
- isTelemetry,
- operationId,
- },
- command.sequence,
- );
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param err
- */
- async recover(command, err) {
- const { handlerId } = command.data;
- await this.handleError(handlerId, err, ERROR_TYPE.PREPARE_ASSERTION_ERROR, true);
-
- return Command.empty();
- }
-
- /**
- * Builds default prepareAssertionForPublish
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'prepareAssertionForPublish',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = PrepareAssertionForPublish;
diff --git a/modules/command/publish/send-assertion-command.js b/modules/command/publish/send-assertion-command.js
deleted file mode 100644
index 8e262035a..000000000
--- a/modules/command/publish/send-assertion-command.js
+++ /dev/null
@@ -1,163 +0,0 @@
-const Command = require('../command');
-const Models = require('../../../models/index');
-const constants = require('../../constants');
-
-class SendAssertionCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.config = ctx.config;
- this.networkService = ctx.networkService;
- this.publishService = ctx.publishService;
- this.fileService = ctx.fileService;
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const { documentPath, handlerId, operationId } = command.data;
- this.logger.emit({
- msg: 'Started measuring execution of replicate data to network',
- Event_name: 'publish_replicate_start',
- Operation_name: 'publish_replicate',
- Id_operation: operationId,
- });
-
- let { nquads, assertion } = await this.fileService.loadJsonFromFile(documentPath);
-
- if (!assertion.metadata.visibility) {
- nquads = nquads.filter((x) => x.startsWith(`<${constants.DID_PREFIX}:`));
- }
-
- let nodes = new Set();
- for (const keyword of assertion.metadata.keywords.concat(assertion.id)) {
- this.logger.info(
- `Searching for closest ${this.config.replicationFactor} node(s) for keyword ${keyword}`,
- );
- const foundNodes = await this.networkService.findNodes(
- keyword,
- constants.NETWORK_PROTOCOLS.STORE,
- this.config.replicationFactor,
- );
- if (foundNodes.length < this.config.replicationFactor) {
- this.logger.warn(
- `Found only ${foundNodes.length} node(s) for keyword ${keyword}`,
- );
- }
- for (const node of foundNodes) {
- nodes.add(node);
- }
- }
- nodes = [...nodes];
-
- let busyResponses = 0;
- let failedResponses = 0;
- const storePromises = nodes.map((node) => this.publishService
- .store({ id: assertion.id, nquads }, node)
- .then((response) => {
- if (!response) {
- this.logger.error({
- msg: `Error while sending data with assertion id ${assertion.id} to node ${node._idB58String} - receiving node didn't store the assertion.`,
- Operation_name: 'Error',
- Event_name: constants.ERROR_TYPE.SEND_ASSERTION_ERROR,
- Id_operation: handlerId,
- });
- failedResponses += 1;
- } else if (response === constants.NETWORK_RESPONSES.BUSY) {
- this.logger.error({
- msg: `Error while sending data with assertion id ${assertion.id} to node ${node._idB58String} - receiving node is too busy to store the assertion.`,
- Operation_name: 'Error',
- Event_name: constants.ERROR_TYPE.SEND_ASSERTION_ERROR_BUSY,
- Id_operation: handlerId,
- });
- busyResponses += 1;
- }
- return response;
- }).catch((e) => {
- this.handleError(
- handlerId,
- e,
- `Error while sending data with assertion id ${assertion.id} to node ${node._idB58String}. Error message: ${e.message}. ${e.stack}`,
- );
- }));
-
- await Promise.all(storePromises);
- const maxFailResponses = Math.round((1 - constants.STORE_MIN_SUCCESS_RATE) * nodes.length);
- const status = (failedResponses + busyResponses) <= maxFailResponses ? 'COMPLETED' : 'FAILED';
- await Models.handler_ids.update(
- {
- status,
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
-
- if (command.data.isTelemetry) {
- await Models.assertions.create({
- hash: assertion.id,
- topics: JSON.stringify(assertion.metadata.keywords[0]),
- created_at: assertion.metadata.timestamp,
- triple_store: this.config.graphDatabase.implementation,
- status,
- });
- }
-
- if (status === 'COMPLETED') {
- this.logger.emit({
- msg: 'Finished measuring execution of replicate data to network',
- Event_name: 'publish_replicate_end',
- Operation_name: 'publish_replicate',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Finished measuring execution of publish command',
- Event_name: 'publish_end',
- Operation_name: 'publish',
- Id_operation: operationId,
- });
- }
-
- return this.continueSequence(command.data, command.sequence);
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param err
- */
- async recover(command, err) {
- return Command.empty();
- }
-
- handleError(handlerId, error, msg) {
- this.logger.error({
- msg,
- Operation_name: 'Error',
- Event_name: constants.ERROR_TYPE.SEND_ASSERTION_ERROR,
- Event_value1: error.message,
- Id_operation: handlerId,
- });
- }
-
- /**
- * Builds default sendAssertionCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'sendAssertionCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = SendAssertionCommand;
diff --git a/modules/command/publish/submit-proofs-command.js b/modules/command/publish/submit-proofs-command.js
deleted file mode 100644
index 0231cc7e3..000000000
--- a/modules/command/publish/submit-proofs-command.js
+++ /dev/null
@@ -1,141 +0,0 @@
-const sortedStringify = require('json-stable-stringify');
-const Command = require('../command');
-const constants = require('../../constants');
-
-class SubmitProofsCommand extends Command {
- constructor(ctx) {
- super(ctx);
- this.logger = ctx.logger;
- this.blockchainService = ctx.blockchainService;
- this.dataService = ctx.dataService;
- this.fileService = ctx.fileService;
- this.workerPool = ctx.workerPool;
-
- this.blockchainQueue = ctx.blockchainQueue.promise(this, this.sendTransaction, 1);
- }
-
- /**
- * Executes command and produces one or more events
- * @param command
- */
- async execute(command) {
- const {
- documentPath, handlerId, method, isTelemetry, operationId,
- } = command.data;
-
- try {
- this.logger.emit({
- msg: 'Started measuring execution of submitting proofs to blockchain',
- Event_name: 'publish_blockchain_start',
- Operation_name: 'publish_blockchain',
- Id_operation: operationId,
- });
- let { nquads, assertion } = await this.fileService.loadJsonFromFile(documentPath);
-
- this.logger.info('Sending transaction to the blockchain');
- let result;
- if (isTelemetry) {
- result = await this.blockchainQueue.unshift({ method, assertion });
- } else {
- if (this.blockchainQueue.length() > constants.BLOCKCHAIN_QUEUE_LIMIT) {
- throw new Error('Blockchain queue is full');
- }
- result = await this.blockchainQueue.push({ method, assertion });
- }
-
- const { transactionHash, blockchain } = result;
- this.logger.info(`Transaction hash is ${transactionHash} on ${blockchain}`);
-
- assertion.blockchain = {
- name: blockchain,
- transactionHash,
- };
-
- nquads = await this.dataService.appendBlockchainMetadata(nquads, assertion);
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- await this.fileService
- .writeContentsToFile(handlerIdCachePath, handlerId, sortedStringify({
- nquads, assertion,
- }));
- this.logger.emit({
- msg: 'Finished measuring execution of submitting proofs to blockchain',
- Event_name: 'publish_blockchain_end',
- Operation_name: 'publish_blockchain',
- Id_operation: operationId,
- });
- } catch (e) {
- await this.handleError(handlerId, e, constants.ERROR_TYPE.SUBMIT_PROOFS_ERROR, true);
- return Command.empty();
- }
-
- return this.continueSequence(command.data, command.sequence);
- }
-
- async sendTransaction(args) {
- const { assertion, method } = args;
- let result;
- switch (method) {
- case constants.PUBLISH_METHOD.PUBLISH:
- result = await this.blockchainService.createAssertionRecord(
- assertion.id,
- assertion.rootHash,
- assertion.metadata.issuer,
- );
- break;
- case constants.PUBLISH_METHOD.PROVISION:
- result = await this.blockchainService.registerAsset(
- assertion.metadata.UALs[0],
- assertion.metadata.type,
- assertion.metadata.UALs[0],
- assertion.id,
- assertion.rootHash,
- 1,
- );
- break;
- case constants.PUBLISH_METHOD.UPDATE:
- result = await this.blockchainService.updateAsset(
- assertion.metadata.UALs[0],
- assertion.id,
- assertion.rootHash,
- );
- break;
- default:
- break;
- }
-
- return result;
- }
-
- /**
- * Recover system from failure
- * @param command
- * @param err
- */
- async recover(command, err) {
- const {
- handlerId,
- } = command.data;
-
- await this.handleError(handlerId, err, constants.ERROR_TYPE.SUBMIT_PROOFS_ERROR, true);
-
- return Command.empty();
- }
-
- /**
- * Builds default submitProofsCommand
- * @param map
- * @returns {{add, data: *, delay: *, deadline: *}}
- */
- default(map) {
- const command = {
- name: 'submitProofsCommand',
- delay: 0,
- transactional: false,
- };
- Object.assign(command, map);
- return command;
- }
-}
-
-module.exports = SubmitProofsCommand;
diff --git a/modules/constants.js b/modules/constants.js
deleted file mode 100644
index e01e53fb1..000000000
--- a/modules/constants.js
+++ /dev/null
@@ -1,287 +0,0 @@
-exports.GS1EPCIS = 'gs1-epcis';
-exports.ERC721 = 'erc721';
-exports.OTTELEMETRY = 'ottelemetry';
-exports.MERKLE_TREE = 'Merkle Tree';
-exports.BASIC = 'Basic';
-exports.DID = 'DID';
-
-/**
- * @constant {number} MAX_FILE_SIZE
- * - Max file size for publish
- */
-exports.MAX_FILE_SIZE = 2621440;
-
-/**
- * @constant {object} SERVICE_API_RATE_LIMIT
- * - Express rate limit configuration constants
- */
-exports.SERVICE_API_RATE_LIMIT = {
- TIME_WINDOW_MILLS: 1 * 60 * 1000,
- MAX_NUMBER: 10,
-};
-
-/**
- * @constant {object} SERVICE_API_SLOW_DOWN
- * - Express slow down configuration constants
- */
-exports.SERVICE_API_SLOW_DOWN = {
- TIME_WINDOW_MILLS: 1 * 60 * 1000,
- DELAY_AFTER_SECONDS: 5,
- DELAY_MILLS: 3 * 1000,
-};
-
-/**
- * @constant {object} NETWORK_API_RATE_LIMIT
- * - Network (Libp2p) rate limiter configuration constants
- */
-exports.NETWORK_API_RATE_LIMIT = {
- TIME_WINDOW_MILLS: 1 * 60 * 1000,
- MAX_NUMBER: this.SERVICE_API_RATE_LIMIT.MAX_NUMBER,
-};
-
-/**
- * @constant {object} NETWORK_API_SPAM_DETECTION
- * - Network (Libp2p) spam detection rate limiter configuration constants
- */
-exports.NETWORK_API_SPAM_DETECTION = {
- TIME_WINDOW_MILLS: 1 * 60 * 1000,
- MAX_NUMBER: 20,
-};
-
-/**
- * @constant {object} NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES
- * - Network (Libp2p) black list time window in minutes
- */
-exports.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES = 60;
-
-/**
- * @constant {number} DID_PREFIX
- * - DID prefix for graph database
- */
-exports.DID_PREFIX = 'did:dkg';
-
-/**
- * @constant {number} DEFAULT_COMMAND_CLEANUP_TIME_MILLS - Command cleanup interval time
- */
-exports.DEFAULT_COMMAND_CLEANUP_TIME_MILLS = 4 * 24 * 60 * 60 * 1000;
-
-/**
- * @constant {number} HANDLER_IDS_COMMAND_CLEANUP_TIME_MILLS -
- * Export command cleanup interval time 24h
- */
-exports.HANDLER_IDS_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
-
-/**
- * @constant {Array} PERMANENT_COMMANDS - List of all permanent commands
- */
-exports.PERMANENT_COMMANDS = [
- 'otnodeUpdateCommand',
- 'sendTelemetryCommand',
- 'cleanerCommand',
- 'handlerIdsCleanerCommand',
- 'keepAliveCommand',
-];
-
-/**
- * @constant {number} MAX_COMMAND_DELAY_IN_MILLS - Maximum delay for commands
- */
-exports.MAX_COMMAND_DELAY_IN_MILLS = 14400 * 60 * 1000; // 10 days
-
-/**
- * @constant {number} DEFAULT_COMMAND_REPEAT_IN_MILLS - Default repeat interval
- */
-exports.DEFAULT_COMMAND_REPEAT_INTERVAL_IN_MILLS = 5000; // 5 seconds
-
-/**
- * @constant {number} DEFAULT_COMMAND_DELAY_IN_MILLS - Delay for default commands
- */
-exports.DEFAULT_COMMAND_DELAY_IN_MILLS = 60 * 1000; // 60 seconds
-
-/**
- * @constant {number} TRIPLE_STORE_CONNECT_MAX_RETRIES
- * - Maximum retries for connecting to triple store
- */
-exports.TRIPLE_STORE_CONNECT_MAX_RETRIES = 10;
-
-/**
- * @constant {number} TRIPLE_STORE_CONNECT_RETRY_FREQUENCY
- * - Wait interval between retries for connecting to triple store
- */
-exports.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY = 10; // 10 seconds
-
-/**
- * @constant {number} TRIPLE_STORE_QUEUE_LIMIT
- * - Triple store queue limit
- */
-exports.TRIPLE_STORE_QUEUE_LIMIT = 5000;
-
-/**
- * @constant {number} BLOCKCHAIN_QUEUE_LIMIT
- * - Blockchain queue limit
- */
-exports.BLOCKCHAIN_QUEUE_LIMIT = 25000;
-
-/**
- * @constant {number} RESOLVE_MAX_TIME_MILLIS
- * - Maximum time for resolve operation
- */
-exports.RESOLVE_MAX_TIME_MILLIS = 15 * 1000;
-
-/**
- * @constant {number} STORE_MAX_RETRIES
- * - Maximum number of retries
- */
-exports.STORE_MAX_RETRIES = 3;
-
-/**
- * @constant {number} STORE_BUSY_REPEAT_INTERVAL_IN_MILLS
- * - Wait interval between retries for sending store requests
- */
-exports.STORE_BUSY_REPEAT_INTERVAL_IN_MILLS = 4 * 1000;
-
-/**
- * @constant {number} BUSYNESS_LIMITS
- * - Max number of operations in triple store queue that indicate busyness
- */
-exports.BUSYNESS_LIMITS = {
- HANDLE_STORE: 20,
- HANDLE_RESOLVE: 20,
- HANDLE_SEARCH_ASSERTIONS: 20,
- HANDLE_SEARCH_ENTITIES: 15,
-};
-
-/**
- * @constant {number} STORE_MIN_SUCCESS_RATE
- * - Min rate of successful responses from store queries for publish to be maked as COMPLETED
- */
-exports.STORE_MIN_SUCCESS_RATE = 0.8;
-
-/**
- * @constant {object} TRIPLE_STORE_IMPLEMENTATION -
- * Names of available triple store implementations
- */
-exports.TRIPLE_STORE_IMPLEMENTATION = {
- BLAZEGRAPH: 'Blazegraph',
- GRAPHDB: 'GraphDB',
- FUSEKI: 'Fuseki',
-};
-
-/**
- * @constant {number} NETWORK_HANDLER_TIMEOUT -
- * Timeout for all handler methods for network requests
- */
-exports.NETWORK_HANDLER_TIMEOUT = 120e3;
-
-/**
- * @constant {object} NETWORK_RESPONSES -
- * Types of known network responses
- */
-exports.NETWORK_RESPONSES = {
- TRUE: true,
- FALSE: false,
- ACK: 'ack',
- BUSY: 'busy',
- BLOCKED: 'blocked',
- ERROR: 'error',
-};
-
-/**
- * @constant {object} STRINGIFIED_NETWORK_RESPONSES -
- * Stringified types of known network responses
- */
-exports.STRINGIFIED_NETWORK_RESPONSES = {
- ack: '"ack"',
- busy: '"busy"',
- blocked: '"blocked"',
- error: '"error"',
-};
-
-/**
- * @constant {object} NETWORK_PROTOCOLS -
- * Network protocols
- */
-exports.NETWORK_PROTOCOLS = {
- STORE: '/store/1.0.1',
- RESOLVE: '/resolve/1.0.1',
- SEARCH: '/search/1.0.1',
- SEARCH_RESULT: '/search/1.0.1/result',
- SEARCH_ASSERTIONS: '/search/assertions/1.0.1',
- SEARCH_ASSERTIONS_RESULT: '/search/assertions/1.0.1/result',
-};
-
-/**
- * @constant {object} SERVICE_API_ROUTES
- * Service api routes
- */
-exports.SERVICE_API_ROUTES = {
- PUBLISH: '/publish',
- PROVISION: '/provision',
- UPDATE: '/update',
- RESOLVE: '/resolve',
- SEARCH: '/entities::search',
- SEARCH_ASSERTIONS: '/assertions::search',
- QUERY: '/query',
- PROOFS: '/proofs::get',
- OPERATION_RESULT: '/:operation/result/:handler_id',
- INFO: '/info',
-};
-
-/**
- * @constant {object} ERROR_TYPE -
- * Types of errors supported
- */
-exports.ERROR_TYPE = {
- INSERT_ASSERTION_ERROR: 'InsertAssertionError',
- PREPARE_ASSERTION_ERROR: 'PrepareAssertionError',
- SUBMIT_PROOFS_ERROR: 'SubmitProofsError',
- SEND_ASSERTION_ERROR: 'SendAssertionError',
- SEND_ASSERTION_ERROR_BUSY: 'SendAssertionErrorBusy',
- SENDING_TELEMETRY_DATA_ERROR: 'SendingDataTelemetryError',
- CHECKING_UPDATE_ERROR: 'CheckingUpdateError',
- API_ERROR_400: 'ApiError400',
- API_ERROR_500: 'ApiError500',
- PUBLISH_ROUTE_ERROR: 'PublishRouteError',
- RESOLVE_ROUTE_ERROR: 'ResolveRouteError',
- SEARCH_ASSERTIONS_ROUTE_ERROR: 'SearchAssertionsRouteError',
- SEARCH_ENTITIES_ROUTE_ERROR: 'SearchEntitiesRouteError',
- QUERY_ROUTE_ERROR: 'QueryRouteError',
- PROOFS_ROUTE_ERROR: 'ProofsRouteError',
- RESULTS_ROUTE_ERROR: 'ResultsRouteError',
- NODE_INFO_ROUTE_ERROR: 'NodeInfoRouteError',
- HANDLE_STORE_ERROR: 'HandleStoreError',
- EXTRACT_METADATA_ERROR: 'ExtractMetadataError',
- TRIPLE_STORE_UNAVAILABLE_ERROR: 'TripleStoreUnavailableError',
- TRIPLE_STORE_INSERT_ERROR: 'TripleStoreInsertError',
- LIBP2P_HANDLE_MSG_ERROR: 'Libp2pHandleMessageError',
- VERIFY_ASSERTION_ERROR: 'VerifyAssertionError',
- BLOCKCHAIN_CHECK_ERROR: 'BlockchainCheckError',
- COMMAND_EXECUTOR_ERROR: 'CommandExecutorError',
- FAILED_COMMAND_ERROR: 'FailedCommandError',
- MODULE_INITIALIZATION_ERROR: 'ModuleInitializationError',
- UPDATE_INITIALIZATION_ERROR: 'UpdateInitializationError',
- DATA_MODULE_INITIALIZATION_ERROR: 'DataModuleInitializationError',
- OPERATIONALDB_MODULE_INITIALIZATION_ERROR: 'OperationalDbModuleInitializationError',
- NETWORK_INITIALIZATION_ERROR: 'NetworkInitializationError',
- VALIDATION_INITIALIZATION_ERROR: 'ValidationInitializationError',
- BLOCKCHAIN_INITIALIZATION_ERROR: 'BlockchainInitializationError',
- COMMAND_EXECUTOR_INITIALIZATION_ERROR: 'CommandExecutorInitializationError',
- RPC_INITIALIZATION_ERROR: 'RpcInitializationError',
- KEEP_ALIVE_ERROR: 'KeepAliveError',
-};
-/**
- * @constant {object} HANDLER_ID_STATUS -
- * Possible statuses for handler id
- */
-exports.HANDLER_ID_STATUS = {
- PENDING: 'PENDING',
- FAILED: 'FAILED',
-};
-/**
- * @constant {object} PUBLISH_METHOD -
- * Possible methods for publish
- */
-exports.PUBLISH_METHOD = {
- PUBLISH: 'PUBLISH',
- PROVISION: 'PROVISION',
- UPDATE: 'UPDATE',
-};
diff --git a/modules/controller/rpc-controller.js b/modules/controller/rpc-controller.js
deleted file mode 100644
index 2a7ba1b81..000000000
--- a/modules/controller/rpc-controller.js
+++ /dev/null
@@ -1,1122 +0,0 @@
-const express = require('express');
-const fileUpload = require('express-fileupload');
-const ipfilter = require('express-ipfilter').IpFilter;
-const fs = require('fs');
-const https = require('https');
-const { IpDeniedError } = require('express-ipfilter');
-const path = require('path');
-const { v1: uuidv1 } = require('uuid');
-const sortedStringify = require('json-stable-stringify');
-const validator = require('validator');
-const rateLimit = require('express-rate-limit');
-const slowDown = require('express-slow-down');
-const Models = require('../../models/index');
-const constants = require('../constants');
-const pjson = require('../../package.json');
-const Utilities = require('../utilities');
-
-class RpcController {
- constructor(ctx) {
- this.config = ctx.config;
- this.publishService = ctx.publishService;
- this.queryService = ctx.queryService;
- this.networkService = ctx.networkService;
- this.validationService = ctx.validationService;
- this.blockchainService = ctx.blockchainService;
- this.dataService = ctx.dataService;
- this.logger = ctx.logger;
- this.commandExecutor = ctx.commandExecutor;
- this.fileService = ctx.fileService;
- this.workerPool = ctx.workerPool;
- this.publishController = ctx.publishController;
- this.app = express();
-
- this.enableSSL();
-
- this.app.use(
- fileUpload({
- createParentPath: true,
- }),
- );
- }
-
- async initialize() {
- // TODO add body-parser middleware
- this.initializeNetworkApi();
-
- this.initializeAuthenticationMiddleware();
- this.initializeRateLimitMiddleware();
- this.initializeSlowDownMiddleWare();
- this.initializeServiceApi();
- await this.initializeErrorMiddleware();
- if (this.sslEnabled) {
- await this.httpsServer.listen(this.config.rpcPort);
- } else {
- await this.app.listen(this.config.rpcPort);
- }
- }
-
- initializeAuthenticationMiddleware() {
- const formattedWhitelist = [];
- const ipv6prefix = '::ffff:';
- for (let i = 0; i < this.config.ipWhitelist.length; i += 1) {
- if (!this.config.ipWhitelist[i].includes(':')) {
- formattedWhitelist.push(ipv6prefix.concat(this.config.ipWhitelist[i]));
- } else {
- formattedWhitelist.push(this.config.ipWhitelist[i]);
- }
- }
-
- this.app.use((req, res, next) => {
- res.header('Access-Control-Allow-Origin', '*');
- res.header(
- 'Access-Control-Allow-Headers',
- 'Origin, X-Requested-With, Content-Type, Accept',
- );
- next();
- });
-
- this.app.use(
- ipfilter(formattedWhitelist, {
- mode: 'allow',
- log: false,
- }),
- );
-
- this.app.use((error, req, res, next) => {
- if (error instanceof IpDeniedError) {
- return res.status(401).send('Access denied');
- }
- return next();
- });
-
- this.app.use((req, res, next) => {
- this.logger.info(`${req.method}: ${req.url} request received`);
- return next();
- });
- }
-
- async initializeErrorMiddleware() {
- await this.app.use((error, req, res, next) => {
- let code;
- let message;
- if (error && error.code) {
- switch (error.code) {
- case 400:
- code = 400;
- message = `Bad request. ${error.message}`;
- break;
- default:
- return next(error);
- }
- this.logger.error({ msg: message, Event_name: constants.ERROR_TYPE.API_ERROR_400 });
- return res.status(code).send(message);
- }
- return next(error);
- });
-
- this.app.use((error, req, res) => {
- this.logger.error({ msg: error, Event_name: constants.ERROR_TYPE.API_ERROR_500 });
- return res.status(500).send(error);
- });
- }
-
- enableSSL() {
- this.sslEnabled =
- fs.existsSync('/root/certs/privkey.pem') && fs.existsSync('/root/certs/fullchain.pem');
-
- if (this.sslEnabled) {
- this.httpsServer = https.createServer(
- {
- key: fs.readFileSync('/root/certs/privkey.pem'),
- cert: fs.readFileSync('/root/certs/fullchain.pem'),
- },
- this.app,
- );
- }
- }
-
- initializeRateLimitMiddleware() {
- this.rateLimitMiddleware = rateLimit({
- windowMs: constants.SERVICE_API_RATE_LIMIT.TIME_WINDOW_MILLS,
- max: constants.SERVICE_API_RATE_LIMIT.MAX_NUMBER,
- message: `Too many requests sent, maximum number of requests per minute is ${constants.SERVICE_API_RATE_LIMIT.MAX_NUMBER}`,
- standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
- legacyHeaders: false, // Disable the `X-RateLimit-*` headers
- });
- }
-
- initializeSlowDownMiddleWare() {
- this.slowDownMiddleware = slowDown({
- windowMs: constants.SERVICE_API_SLOW_DOWN.TIME_WINDOW_MILLS,
- delayAfter: constants.SERVICE_API_SLOW_DOWN.DELAY_AFTER_SECONDS,
- delayMs: constants.SERVICE_API_SLOW_DOWN.DELAY_MILLS,
- });
- }
-
- initializeNetworkApi() {
- this.logger.info(`Network API module enabled on port ${this.config.network.port}`);
-
- this.networkService.handleMessage(constants.NETWORK_PROTOCOLS.STORE, (result) =>
- this.publishService.handleStore(result),
- );
-
- this.networkService.handleMessage(constants.NETWORK_PROTOCOLS.RESOLVE, (result) =>
- this.queryService.handleResolve(result),
- );
-
- this.networkService.handleMessage(
- constants.NETWORK_PROTOCOLS.SEARCH,
- (result) => this.queryService.handleSearch(result),
- {
- async: true,
- timeout: constants.NETWORK_HANDLER_TIMEOUT,
- },
- );
-
- this.networkService.handleMessage(constants.NETWORK_PROTOCOLS.SEARCH_RESULT, (result) =>
- this.queryService.handleSearchResult(result),
- );
-
- this.networkService.handleMessage(
- constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
- (result) => this.queryService.handleSearchAssertions(result),
- {
- async: true,
- timeout: constants.NETWORK_HANDLER_TIMEOUT,
- },
- );
-
- this.networkService.handleMessage(
- constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS_RESULT,
- (result) => this.queryService.handleSearchAssertionsResult(result),
- );
-
- // this.networkService.handleMessage('/query', (result)
- // => this.queryService.handleQuery(result));
- }
-
- initializeServiceApi() {
- this.logger.info(
- `Service API module enabled, server running on port ${this.config.rpcPort}`,
- );
-
- this.app.post(
- constants.SERVICE_API_ROUTES.PUBLISH,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res) => {
- await this.publishController.handleHttpApiPublishRequest(req, res);
- },
- );
-
- this.app.post(
- constants.SERVICE_API_ROUTES.PROVISION,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- await this.publishController.handleHttpApiProvisionRequest(req, res);
- },
- );
-
- this.app.post(
- constants.SERVICE_API_ROUTES.UPDATE,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- if (!req.body.ual) {
- return next({
- code: 400,
- message: 'UAL must be a string.',
- });
- }
- await this.publishController.handleHttpApiUpdateRequest(req, res);
- },
- );
-
- this.app.get(
- constants.SERVICE_API_ROUTES.RESOLVE,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of resolve command',
- Event_name: 'resolve_start',
- Operation_name: 'resolve',
- Id_operation: operationId,
- });
-
- this.logger.emit({
- msg: 'Started measuring execution of resolve init',
- Event_name: 'resolve_init_start',
- Operation_name: 'resolve_init',
- Id_operation: operationId,
- });
-
- if (!req.query.ids) {
- return next({ code: 400, message: 'Param ids is required.' });
- }
-
- if (req.query.load === undefined) {
- req.query.load = false;
- }
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve init',
- Event_name: 'resolve_init_end',
- Operation_name: 'resolve_init',
- Id_operation: operationId,
- });
-
- let handlerId = null;
- try {
- const inserted_object = await Models.handler_ids.create({
- status: 'PENDING',
- });
- handlerId = inserted_object.dataValues.handler_id;
- res.status(202).send({
- handler_id: handlerId,
- });
-
- let ids = [req.query.ids];
- if (req.query.ids instanceof Array) {
- ids = [...new Set(req.query.ids)];
- }
- this.logger.info(`Resolve for ${ids} with handler id ${handlerId} initiated.`);
- const response = [];
-
- for (let id of ids) {
- let isAsset = false;
- const { assertionId } = await this.blockchainService.getAssetProofs(id);
- if (assertionId) {
- isAsset = true;
- id = assertionId;
- }
- this.logger.emit({
- msg: id,
- Event_name: 'resolve_assertion_id',
- Operation_name: 'resolve_assertion_id',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of resolve local',
- Event_name: 'resolve_local_start',
- Operation_name: 'resolve_local',
- Id_operation: operationId,
- });
-
- const nquads = await this.dataService.resolve(id, true);
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve local',
- Event_name: 'resolve_local_end',
- Operation_name: 'resolve_local',
- Id_operation: operationId,
- });
-
- if (nquads) {
- this.logger.emit({
- msg: 'Started measuring execution of create assertion from nquads',
- Event_name: 'resolve_create_assertion_from_nquads_start',
- Operation_name: 'resolve_create_assertion_from_nquads',
- Id_operation: operationId,
- });
-
- const assertion = await this.dataService.createAssertion(nquads);
-
- this.logger.emit({
- msg: 'Finished measuring execution of create assertion from nquads',
- Event_name: 'resolve_create_assertion_from_nquads_end',
- Operation_name: 'resolve_create_assertion_from_nquads',
- Id_operation: operationId,
- });
-
- assertion.jsonld.metadata = JSON.parse(
- sortedStringify(assertion.jsonld.metadata),
- );
- assertion.jsonld.data = JSON.parse(
- sortedStringify(
- await this.dataService.fromNQuads(
- assertion.jsonld.data,
- assertion.jsonld.metadata.type,
- ),
- ),
- );
- response.push(
- isAsset
- ? {
- type: 'asset',
- id: assertion.jsonld.metadata.UALs[0],
- result: {
- assertions: await this.dataService.assertionsByAsset(
- assertion.jsonld.metadata.UALs[0],
- ),
- metadata: {
- type: assertion.jsonld.metadata.type,
- issuer: assertion.jsonld.metadata.issuer,
- latestState: assertion.jsonld.metadata.timestamp,
- },
- data: assertion.jsonld.data,
- },
- }
- : {
- type: 'assertion',
- id,
- assertion: assertion.jsonld,
- },
- );
- } else {
- this.logger.info(
- `Searching for closest ${this.config.replicationFactor} node(s) for keyword ${id}`,
- );
- const nodes = await this.networkService.findNodes(
- id,
- constants.NETWORK_PROTOCOLS.RESOLVE,
- this.config.replicationFactor,
- );
- if (nodes.length < this.config.replicationFactor) {
- this.logger.warn(
- `Found only ${nodes.length} node(s) for keyword ${id}`,
- );
- }
- for (const node of nodes) {
- try {
- const assertion = await this.queryService.resolve(
- id,
- req.query.load,
- isAsset,
- node,
- operationId,
- );
- if (assertion) {
- assertion.jsonld.metadata = JSON.parse(
- sortedStringify(assertion.jsonld.metadata),
- );
- assertion.jsonld.data = JSON.parse(
- sortedStringify(
- await this.dataService.fromNQuads(
- assertion.jsonld.data,
- assertion.jsonld.metadata.type,
- ),
- ),
- );
- response.push(
- isAsset
- ? {
- type: 'asset',
- id: assertion.jsonld.metadata.UALs[0],
- result: {
- metadata: {
- type: assertion.jsonld.metadata.type,
- issuer: assertion.jsonld.metadata
- .issuer,
- latestState:
- assertion.jsonld.metadata
- .timestamp,
- },
- data: assertion.jsonld.data,
- },
- }
- : {
- type: 'assertion',
- id,
- assertion: assertion.jsonld,
- },
- );
- break;
- }
- } catch (e) {
- this.logger.error({
- msg: `Error while resolving data from another node: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.RESOLVE_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- }
- }
- }
- }
-
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- this.logger.emit({
- msg: 'Started measuring execution of resolve save assertion',
- Event_name: 'resolve_save_assertion_start',
- Operation_name: 'resolve_save_assertion',
- Id_operation: operationId,
- });
-
- await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- JSON.stringify(response),
- );
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve save assertion',
- Event_name: 'resolve_save_assertion_end',
- Operation_name: 'resolve_save_assertion',
- Id_operation: operationId,
- });
-
- await Models.handler_ids.update(
- {
- status: 'COMPLETED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve command',
- Event_name: 'resolve_end',
- Operation_name: 'resolve',
- Id_operation: operationId,
- });
- } catch (e) {
- this.logger.error({
- msg: `Unexpected error at resolve route: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.RESOLVE_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- this.updateFailedHandlerId(handlerId, e, next);
- }
- },
- );
-
- this.app.get(
- constants.SERVICE_API_ROUTES.SEARCH_ASSERTIONS,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- if (!req.query.query || req.params.search !== 'search') {
- return next({ code: 400, message: 'Params query is necessary.' });
- }
-
- let { prefix } = req.query;
- let { limit } = req.query;
- const query = req.query.query.toLowerCase();
-
- if (!prefix) {
- prefix = false;
- }
-
- if (!limit || limit < 1 || !Number(limit)) {
- limit = 20;
- } else if (limit > 500) {
- limit = 500;
- }
-
- const operationId = uuidv1();
- let handlerId = null;
- try {
- this.logger.emit({
- msg: 'Started measuring execution of search command',
- Event_name: 'search_start',
- Operation_name: 'search',
- Id_operation: operationId,
- });
- const inserted_object = await Models.handler_ids.create({
- status: 'PENDING',
- });
- handlerId = inserted_object.dataValues.handler_id;
- res.status(202).send({
- handler_id: handlerId,
- });
-
- const response = await this.dataService.searchAssertions(
- query,
- { limit, prefix },
- true,
- );
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- JSON.stringify(response),
- );
- await Models.handler_ids.update(
- {
- status: 'COMPLETED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
-
- this.logger.info(
- `Searching for closest ${this.config.replicationFactor} node(s) for keyword ${query}`,
- );
- let nodes = await this.networkService.findNodes(
- query,
- constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
- this.config.replicationFactor,
- );
- if (nodes.length < this.config.replicationFactor) {
- this.logger.warn(`Found only ${nodes.length} node(s) for keyword ${query}`);
- }
-
- nodes = [...new Set(nodes)];
- const searchPromises = nodes.map((node) =>
- this.queryService.searchAssertions(
- {
- query,
- options: { limit, prefix },
- handlerId,
- },
- node,
- ),
- );
- await Promise.allSettled(searchPromises);
- } catch (e) {
- this.logger.error({
- msg: `Unexpected error at search assertions route: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.SEARCH_ASSERTIONS_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- this.updateFailedHandlerId(handlerId, e, next);
- } finally {
- this.logger.emit({
- msg: 'Finished measuring execution of search command',
- Event_name: 'search_end',
- Operation_name: 'search',
- Id_operation: operationId,
- });
- }
- },
- );
-
- this.app.get(
- constants.SERVICE_API_ROUTES.SEARCH,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- if (!req.query.query || req.params.search !== 'search') {
- return next({ code: 400, message: 'Params query or ids are necessary.' });
- }
- const operationId = uuidv1();
- let handlerId = null;
- try {
- this.logger.emit({
- msg: 'Started measuring execution of search command',
- Event_name: 'search_start',
- Operation_name: 'search',
- Id_operation: operationId,
- });
-
- const query = req.query.query.toLowerCase();
- let issuers;
- let types;
- let { prefix } = req.query;
- let { limit } = req.query;
-
- if (req.query.issuers) {
- issuers = [req.query.issuers];
- if (req.query.issuers instanceof Array) {
- issuers = [...new Set(req.query.issuers)];
- }
- }
-
- if (req.query.types) {
- types = [req.query.types];
- if (req.query.types instanceof Array) {
- types = [...new Set(req.query.types)];
- }
- }
-
- if (!prefix) {
- prefix = false;
- }
-
- if (!limit || limit < 1 || !Number(limit)) {
- limit = 20;
- } else if (limit > 500) {
- limit = 500;
- }
-
- const inserted_object = await Models.handler_ids.create({
- status: 'PENDING',
- });
- handlerId = inserted_object.dataValues.handler_id;
- res.status(200).send({
- handler_id: handlerId,
- });
-
- let response;
- let nodes = [];
- if (query) {
- response = await this.dataService.searchByQuery(
- query,
- {
- issuers,
- types,
- prefix,
- limit,
- },
- true,
- );
- this.logger.info(
- `Searching for closest ${this.config.replicationFactor} node(s) for keyword ${query}`,
- );
- nodes = await this.networkService.findNodes(
- query,
- constants.NETWORK_PROTOCOLS.SEARCH,
- this.config.replicationFactor,
- );
- if (nodes.length < this.config.replicationFactor) {
- this.logger.warn(
- `Found only ${nodes.length} node(s) for keyword ${query}`,
- );
- }
- }
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- JSON.stringify(response),
- );
-
- await Models.handler_ids.update(
- {
- status: 'COMPLETED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
- const searchPromises = nodes.map((node) =>
- this.queryService.search(
- {
- query,
- issuers,
- types,
- prefix,
- limit,
- handlerId,
- },
- node,
- ),
- );
- await Promise.allSettled(searchPromises);
- } catch (e) {
- this.logger.error({
- msg: `Unexpected error at search entities route: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.SEARCH_ENTITIES_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- this.updateFailedHandlerId(handlerId, e, next);
- } finally {
- this.logger.emit({
- msg: 'Finished measuring execution of search command',
- Event_name: 'search_end',
- Operation_name: 'search',
- Id_operation: operationId,
- });
- }
- },
- );
-
- this.app.post(
- constants.SERVICE_API_ROUTES.QUERY,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- if (!req.body || !req.body.query || !req.body.type) {
- return next({ code: 400, message: 'Params query and type are necessary.' });
- }
-
- const { query, type: queryType } = req.body;
-
- const allowedQueries = ['construct', 'select'];
- // Handle allowed query types, TODO: expand to select, ask and construct
- if (!allowedQueries.includes(queryType.toLowerCase())) {
- return next({
- code: 400,
- message: `Unallowed query type, currently supported types: ${allowedQueries.join(
- ', ',
- )}`,
- });
- }
- const operationId = uuidv1();
- let handlerId = null;
- try {
- this.logger.emit({
- msg: 'Started measuring execution of query command',
- Event_name: 'query_start',
- Operation_name: 'query',
- Id_operation: operationId,
- Event_value1: queryType,
- });
-
- const inserted_object = await Models.handler_ids.create({
- status: 'PENDING',
- });
- handlerId = inserted_object.dataValues.handler_id;
- res.status(200).send({
- handler_id: handlerId,
- });
- try {
- const response = await this.dataService.runQuery(
- query,
- queryType.toUpperCase(),
- );
-
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
- if (response) {
- await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- JSON.stringify(response),
- );
- }
-
- await Models.handler_ids.update(
- {
- status: 'COMPLETED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
- } catch (e) {
- this.updateFailedHandlerId(handlerId, e, next);
- }
- } catch (e) {
- this.logger.error({
- msg: `Unexpected error at query route: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.QUERY_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- } finally {
- this.logger.emit({
- msg: 'Finished measuring execution of query command',
- Event_name: 'query_end',
- Operation_name: 'query',
- Id_operation: operationId,
- Event_value1: queryType,
- });
- }
- },
- );
-
- this.app.post(
- constants.SERVICE_API_ROUTES.PROOFS,
- this.rateLimitMiddleware,
- this.slowDownMiddleware,
- async (req, res, next) => {
- if (!req.body.nquads) {
- return next({ code: 400, message: 'Params query and type are necessary.' });
- }
- const operationId = uuidv1();
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
- let handlerId = null;
- try {
- this.logger.emit({
- msg: 'Started measuring execution of proofs command',
- Event_name: 'proofs_start',
- Operation_name: 'proofs',
- Id_operation: operationId,
- });
-
- const inserted_object = await Models.handler_ids.create({
- status: 'PENDING',
- });
- handlerId = inserted_object.dataValues.handler_id;
- res.status(200).send({
- handler_id: handlerId,
- });
- let assertions;
- if (req.query.assertions) {
- assertions = [req.query.assertions];
- if (req.query.assertions instanceof Array) {
- assertions = [...new Set(req.query.assertions)];
- }
- }
- const reqNquads = JSON.parse(req.body.nquads);
-
- const result = [];
- if (!assertions || assertions.length === 0) {
- assertions = await this.dataService.findAssertions(reqNquads);
- }
- for (const assertionId of assertions) {
- const rawNquads = await this.dataService.resolve(assertionId);
- if (rawNquads) {
- const { nquads } = await this.dataService.createAssertion(rawNquads);
- const proofs = await this.validationService.getProofs(
- nquads,
- reqNquads,
- );
- result.push({ assertionId, proofs });
- }
- }
-
- await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- JSON.stringify(result),
- );
-
- await Models.handler_ids.update(
- {
- status: 'COMPLETED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
- } catch (e) {
- this.logger.error({
- msg: `Unexpected error at proofs route: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.PROOFS_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: operationId,
- });
- this.updateFailedHandlerId(handlerId, e, next);
- } finally {
- this.logger.emit({
- msg: 'Finished measuring execution of proofs command',
- Event_name: 'proofs_end',
- Operation_name: 'proofs',
- Id_operation: operationId,
- });
- }
- },
- );
-
- this.app.get(constants.SERVICE_API_ROUTES.OPERATION_RESULT, async (req, res, next) => {
- if (
- ![
- 'provision',
- 'update',
- 'publish',
- 'resolve',
- 'query',
- 'entities:search',
- 'assertions:search',
- 'proofs:get',
- ].includes(req.params.operation)
- ) {
- return next({
- code: 400,
- message:
- 'Unexisting operation, available operations are: provision, update, publish, resolve, entities:search, assertions:search, query and proofs:get',
- });
- }
-
- const { handler_id, operation } = req.params;
- if (!validator.isUUID(handler_id)) {
- return next({
- code: 400,
- message: 'Handler id is in wrong format',
- });
- }
-
- try {
- const handlerData = await Models.handler_ids.findOne({
- where: {
- handler_id,
- },
- });
-
- let response;
- if (handlerData) {
- if (handlerData.status === 'FAILED') {
- return res.status(200).send({
- status: handlerData.status,
- data: JSON.parse(handlerData.data),
- });
- }
- const documentPath = this.fileService.getHandlerIdDocumentPath(handler_id);
- switch (req.params.operation) {
- case 'entities:search':
- if (handlerData && handlerData.status === 'COMPLETED') {
- handlerData.data = await this.fileService.loadJsonFromFile(
- documentPath,
- );
- } else {
- handlerData.data = [];
- }
-
- response = handlerData.data.map((x) => ({
- '@type': 'EntitySearchResult',
- result: {
- '@id': x.id,
- '@type': x.type.toUpperCase(),
- timestamp: x.timestamp,
- },
- issuers: x.issuers,
- assertions: x.assertions,
- nodes: x.nodes,
- resultScore: 0,
- }));
-
- res.send({
- '@context': {
- '@vocab': 'http://schema.org/',
- goog: 'http://schema.googleapis.com/',
- resultScore: 'goog:resultScore',
- detailedDescription: 'goog:detailedDescription',
- EntitySearchResult: 'goog:EntitySearchResult',
- kg: 'http://g.co/kg',
- },
- '@type': 'ItemList',
- itemCount: response.length,
- itemListElement: response,
- });
- break;
- case 'assertions:search':
- if (handlerData && handlerData.status === 'COMPLETED') {
- handlerData.data = await this.fileService.loadJsonFromFile(
- documentPath,
- );
- } else {
- handlerData.data = [];
- }
-
- response = handlerData.data.map(async (x) => ({
- '@type': 'AssertionSearchResult',
- result: {
- '@id': x.id,
- metadata: x.metadata,
- signature: x.signature,
- rootHash: x.rootHash,
- },
- nodes: x.nodes,
- resultScore: 0,
- }));
-
- response = await Promise.all(response);
-
- res.send({
- '@context': {
- '@vocab': 'http://schema.org/',
- goog: 'http://schema.googleapis.com/',
- resultScore: 'goog:resultScore',
- detailedDescription: 'goog:detailedDescription',
- EntitySearchResult: 'goog:EntitySearchResult',
- kg: 'http://g.co/kg',
- },
- '@type': 'ItemList',
- itemCount: response.length,
- itemListElement: response,
- });
- break;
- case 'resolve':
- if (handlerData && handlerData.status === 'COMPLETED') {
- handlerData.data = await this.fileService.loadJsonFromFile(
- documentPath,
- );
- }
- res.status(200).send({
- status: handlerData.status,
- data: handlerData.data,
- });
- break;
- case 'provision':
- case 'publish':
- case 'update':
- if (handlerData && handlerData.status === 'COMPLETED') {
- const result = await this.fileService.loadJsonFromFile(
- documentPath,
- );
- delete result.assertion.data;
- handlerData.data = result.assertion;
- }
- res.status(200).send({
- status: handlerData.status,
- data: handlerData.data,
- });
- break;
- default:
- if (handlerData && handlerData.status === 'COMPLETED') {
- handlerData.data = await this.fileService.loadJsonFromFile(
- documentPath,
- );
- }
-
- res.status(200).send({
- status: handlerData.status,
- data: handlerData.data,
- });
- break;
- }
- } else {
- next({ code: 404, message: `Handler with id: ${handler_id} does not exist.` });
- }
- } catch (e) {
- this.logger.error({
- msg: `Error while trying to fetch ${operation} data for handler id ${handler_id}. Error message: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.RESULTS_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: handler_id,
- });
- next({ code: 400, message: `Unexpected error at getting results: ${e}` });
- }
- });
-
- this.app.get(constants.SERVICE_API_ROUTES.INFO, async (req, res, next) => {
- try {
- const { version } = pjson;
-
- res.status(200).send({
- version,
- auto_update: this.config.modules.autoUpdater.enabled,
- telemetry: this.config.telemetryHub.enabled,
- });
- } catch (e) {
- this.logger.emit({
- msg: 'Telemetry logging error at node info route',
- Operation_name: 'Error',
- Event_name: constants.ERROR_TYPE.NODE_INFO_ROUTE_ERROR,
- Event_value1: e.message,
- Id_operation: 'Undefined',
- });
- return next({
- code: 400,
- message: `Error while fetching node info: ${e}. ${e.stack}`,
- });
- }
- });
- }
-
- updateFailedHandlerId(handlerId, error, next) {
- if (handlerId !== null) {
- Models.handler_ids.update(
- {
- status: 'FAILED',
- data: JSON.stringify({ errorMessage: error.message }),
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
- } else {
- return next({
- code: 400,
- message: 'Something went wrong with the requested operation, try again.',
- });
- }
- }
-}
-
-module.exports = RpcController;
diff --git a/modules/logger/pino-pretty-transport.js b/modules/logger/pino-pretty-transport.js
deleted file mode 100644
index 0b719b6c1..000000000
--- a/modules/logger/pino-pretty-transport.js
+++ /dev/null
@@ -1,8 +0,0 @@
-// pino-pretty-transport.js
-module.exports = opts => require('pino-pretty')({
- ...opts,
- translateTime: 'yyyy-mm-dd HH:MM:ss',
- ignore: 'pid,hostname,Event_name,Operation_name,Id_operation',
- hideObject: true,
- messageFormat: (log, messageKey) => `${log[messageKey]}`
-})
diff --git a/modules/manager/base-module-manager.js b/modules/manager/base-module-manager.js
deleted file mode 100644
index 456f9a90a..000000000
--- a/modules/manager/base-module-manager.js
+++ /dev/null
@@ -1,46 +0,0 @@
-const appRootPath = require('app-root-path');
-
-class BaseModuleManager {
- static EXCLUSIVE = 'exclusive';
- static PARALLEL = 'parallel';
- static SEQUENTIAL = 'sequential';
-
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- }
-
- initialize() {
- try {
- this.initialized = false;
- const moduleConfig = this.config[this.getName()];
- if (!moduleConfig || !moduleConfig.enabled) {
- this.logger.warn(`${this.getName()} module not defined or enabled in configuration`);
- return false;
- }
-
- if (!moduleConfig.packages || moduleConfig.packages.length > this.getPackagesLimit()) {
- this.logger.warn(`Packages for ${this.getName()} module are not defined or exceed limit`);
- return false;
- }
-
-
- this.handlers = [];
- moduleConfig.appRootPath = appRootPath.path;
-
- for (let i = 0; i < moduleConfig.packages.length; i += 1) {
- const module = require(moduleConfig.packages[i]);
- module.initialize(moduleConfig, this.logger);
- this.handlers.push({name: moduleConfig.packages[i], module});
- }
-
- this.initialized = true;
- return true;
- } catch (e) {
- this.logger.error(e);
- return false;
- }
- }
-}
-
-module.exports = BaseModuleManager;
diff --git a/modules/manager/telemetry-hub-module-manager.js b/modules/manager/telemetry-hub-module-manager.js
deleted file mode 100644
index a8389cd5b..000000000
--- a/modules/manager/telemetry-hub-module-manager.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const BaseModuleManager = require('./base-module-manager');
-
-class TelemetryHubModuleManager extends BaseModuleManager {
- getName() {
- return 'telemetryHub';
- }
-
- getType() {
- return BaseModuleManager.SEQUENTIAL;
- }
-
- getPackagesLimit() {
- return 1;
- }
-
- async aggregateTelemetryData() {
- if (this.initialized) {
- return await this.handlers[0].module.aggregateTelemetryData();
- }
- }
-}
-
-module.exports = TelemetryHubModuleManager;
diff --git a/modules/migration/m1-folder-structure-initial-migration.js b/modules/migration/m1-folder-structure-initial-migration.js
deleted file mode 100644
index 5a9e47d41..000000000
--- a/modules/migration/m1-folder-structure-initial-migration.js
+++ /dev/null
@@ -1,93 +0,0 @@
-const fs = require('fs-extra');
-const appRootPath = require('app-root-path');
-const path = require('path');
-const { exec } = require('child_process');
-const pjson = require('../../package.json');
-const BaseMigration = require('./base-migration');
-
-const CONFIGURATION_NAME = '.origintrail_noderc';
-
-class M1FolderStructureInitialMigration extends BaseMigration {
- constructor(logger, config) {
- super('M1FolderStructureInitialMigration', logger, config);
- this.logger = logger;
- this.config = config;
- }
-
- async run() {
- if (process.env.NODE_ENV === 'testnet' || process.env.NODE_ENV === 'mainnet') {
- if (await this.migrationAlreadyExecuted()) {
- return;
- }
-
- const currentSymlink = path.join(appRootPath.path, '..', 'current');
- if (await fs.pathExists(currentSymlink)) {
- await this.finalizeMigration();
- return;
- }
-
- const currentVersion = pjson.version;
- const temporaryAppRootPath = path.join(appRootPath.path, '..', 'ot-node-tmp');
- const newTemporaryAppDirectoryPath = path.join(temporaryAppRootPath, currentVersion);
- await fs.ensureDir(newTemporaryAppDirectoryPath);
-
- const currentAppRootPath = appRootPath.path;
-
- await fs.copy(currentAppRootPath, newTemporaryAppDirectoryPath);
-
- await fs.remove(currentAppRootPath);
-
- await fs.rename(temporaryAppRootPath, currentAppRootPath);
-
- const newAppDirectoryPath = path.join(currentAppRootPath, currentVersion);
-
- const currentSymlinkFolder = path.join(currentAppRootPath, 'current');
- if (await fs.pathExists(currentSymlinkFolder)) {
- await fs.remove(currentSymlinkFolder);
- }
- await fs.ensureSymlink(newAppDirectoryPath, currentSymlinkFolder);
-
- const oldConfigurationPath = path.join(newAppDirectoryPath, CONFIGURATION_NAME);
- const newConfigurationPath = path.join(currentAppRootPath, CONFIGURATION_NAME);
- await fs.move(oldConfigurationPath, newConfigurationPath);
-
- await this.finalizeMigration(path.join(currentAppRootPath, 'data', 'migrations'));
- const otnodeServicePath = path.join(
- newAppDirectoryPath,
- 'installer',
- 'data',
- 'otnode.service',
- );
-
- try {
- await this.updateOtNodeService(otnodeServicePath);
- } catch (error) {
- this.logger.warn(
- `Unable to apply new ot-node service file please do it manually! Error: ${error}`,
- );
- }
- this.logger.info('Folder structure migration completed, node will now restart!');
- process.exit(1);
- } else {
- this.logger.info(
- `Folder structure initial migration skipped for env: ${process.env.NODE_ENV}`,
- );
- }
- }
-
- async updateOtNodeService(otnodeServicePath) {
- return new Promise((resolve, reject) => {
- const command = `cp ${otnodeServicePath} /lib/systemd/system/ && systemctl daemon-reload`;
- this.logger.trace(
- `Copy and apply new otnode service file. Running the command: ${command}`,
- );
- const child = exec(command);
-
- child.stdout.on('end', () => {
- resolve();
- });
- });
- }
-}
-
-module.exports = M1FolderStructureInitialMigration;
diff --git a/modules/service/blockchain-service.js b/modules/service/blockchain-service.js
deleted file mode 100644
index 1e135969e..000000000
--- a/modules/service/blockchain-service.js
+++ /dev/null
@@ -1,68 +0,0 @@
-const Blockchain = require('../../external/web3-blockchain-service');
-
-class BlockchainService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- }
-
- initialize() {
- this.implementation = new Blockchain({
- networkId: this.config.blockchain[0].networkId,
- hubContractAddress: this.config.blockchain[0].hubContractAddress,
- publicKey: this.config.blockchain[0].publicKey,
- privateKey: this.config.blockchain[0].privateKey,
- rpcEndpoints: this.config.blockchain[0].rpcEndpoints,
- });
- return this.implementation.initialize(this.logger);
- }
-
- getName() {
- return this.implementation.getName();
- }
-
- getPrivateKey() {
- return this.implementation.getPrivateKey();
- }
-
- getPublicKey() {
- return this.implementation.getPublicKey();
- }
-
- async createAssertionRecord(stateCommitHash, rootHash, issuer) {
- return this.implementation.createAssertionRecord(stateCommitHash, rootHash, issuer);
- }
-
- async registerAsset(uai, type, alsoKnownAs, stateCommitHash, rootHash, tokenAmount) {
- return this.implementation.registerAsset(
- uai,
- type,
- alsoKnownAs,
- stateCommitHash,
- rootHash,
- tokenAmount,
- );
- }
-
- async updateAsset(UAI, newStateCommitHash, rootHash) {
- return this.implementation.updateAsset(UAI, newStateCommitHash, rootHash);
- }
-
- async getAssertionProofs(assertionId) {
- return this.implementation.getAssertionProofs(assertionId);
- }
-
- async getAssetProofs(ual) {
- return this.implementation.getAssetProofs(ual);
- }
-
- async healthCheck() {
- return this.implementation.healthCheck();
- }
-
- async restartService() {
- return this.implementation.restartService();
- }
-}
-
-module.exports = BlockchainService;
diff --git a/modules/service/data-service.js b/modules/service/data-service.js
deleted file mode 100644
index 728e02f78..000000000
--- a/modules/service/data-service.js
+++ /dev/null
@@ -1,738 +0,0 @@
-const { v1: uuidv1 } = require('uuid');
-const N3 = require('n3');
-const toobusy = require('toobusy-js');
-const constants = require('../constants');
-const GraphDB = require('../../external/graphdb-service');
-const Blazegraph = require('../../external/blazegraph-service');
-const Fuseki = require('../../external/fuseki-service');
-
-class DataService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- this.constants = ctx.constants;
- this.validationService = ctx.validationService;
- this.networkService = ctx.networkService;
- this.nodeService = ctx.nodeService;
- this.workerPool = ctx.workerPool;
- this.blockchainService = ctx.blockchainService;
- this.tripleStoreQueue = ctx.tripleStoreQueue.promise(
- this,
- this.handleTripleStoreRequest,
- 1,
- );
- this.N3Parser = new N3.Parser({ format: 'N-Triples', baseIRI: 'http://schema.org/' });
- }
-
- getTripleStoreQueueLength() {
- return this.tripleStoreQueue.length();
- }
-
- getName() {
- return this.implementation.getName();
- }
-
- async initialize() {
- const config = {
- name: this.config.graphDatabase.name,
- url: this.config.graphDatabase.url,
- };
- switch (this.config.graphDatabase.implementation) {
- case constants.TRIPLE_STORE_IMPLEMENTATION.BLAZEGRAPH:
- this.implementation = new Blazegraph(config);
- break;
- case constants.TRIPLE_STORE_IMPLEMENTATION.GRAPHDB:
- this.implementation = new GraphDB(config);
- break;
- case constants.TRIPLE_STORE_IMPLEMENTATION.FUSEKI:
- this.implementation = new Fuseki(config);
- break;
- default:
- throw Error('Unknown graph database implementation')
- }
-
- let ready = await this.healthCheck();
- let retries = 0;
- while (!ready && retries < constants.TRIPLE_STORE_CONNECT_MAX_RETRIES) {
- retries += 1;
- this.logger.warn(`Cannot connect to Triple store (${this.getName()}), retry number: ${retries}/${constants.TRIPLE_STORE_CONNECT_MAX_RETRIES}. Retrying in ${constants.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY} seconds again.`);
- await new Promise(
- (resolve) => setTimeout(
- resolve,
- constants.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY * 1000,
- ),
- );
- ready = await this.healthCheck();
- }
- if (retries === constants.TRIPLE_STORE_CONNECT_MAX_RETRIES) {
- this.logger.error({
- msg: `Triple Store (${this.getName()}) not available, max retries reached.`,
- Event_name: constants.ERROR_TYPE.TRIPLE_STORE_UNAVAILABLE_ERROR,
- });
- this.nodeService.stop(1);
- }
-
- return this.implementation.initialize(this.logger);
- }
-
- async reinitalize() {
- // TODO: Discussion: add retries - or not
- const ready = await this.healthCheck();
- if (!ready) {
- this.logger.warn(`Cannot connect to Triple store (${this.getName()}), check if your triple store is running.`);
- } else {
- this.implementation.initialize(this.logger);
- }
- }
-
- async canonize(fileContent, fileExtension) {
- switch (fileExtension) {
- case '.json':
- const assertion = {
- metadata: {
- timestamp: new Date().toISOString(),
- },
- data: await this.workerPool.exec('JSONParse', [fileContent.toString()]),
- };
- const nquads = await this.workerPool.exec('toNQuads', [assertion.data]);
- if (nquads && nquads.length === 0) {
- throw new Error('File format is corrupted, no n-quads extracted.');
- }
-
- let type;
- if (assertion.data['@type']) {
- type = assertion.data['@type'];
- delete assertion.data['@type'];
- } else if (assertion.data.type) {
- type = assertion.data.type;
- delete assertion.data.type;
- } else {
- type = 'default';
- }
- assertion.metadata.type = type;
- assertion.data = await this.fromNQuads(nquads, type);
-
- return { assertion, nquads };
- default:
- throw new Error(`File extension ${fileExtension} is not supported.`);
- }
- }
-
- async insert(data, assertionId) {
- try {
- const result = await this.tripleStoreQueue.push({ operation: 'insert', data, assertionId });
- return result;
- } catch (e) {
- // TODO: Check situation when inserting data recieved from other node
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async resolve(id, localQuery = false, metadataOnly = false) {
- try {
- let nquads = await this.tripleStoreQueue.push({ operation: 'resolve', id });
- if (nquads.length) {
- nquads = nquads.toString();
- nquads = nquads.split('\n');
- nquads = nquads.filter((x) => x !== '');
- // canonize nquads before roothash validation
- nquads = await this.workerPool.exec('toNQuads', [nquads.join('\n'), 'application/n-quads']);
- } else {
- nquads = null;
- }
-
- // TODO: add function for this conditional expr for increased readability
- if (!localQuery && nquads && nquads.find((x) => x.includes(`<${constants.DID_PREFIX}:${id}> "private" .`))) {
- return null;
- }
- if (metadataOnly) {
- nquads = nquads.filter((x) => x.startsWith(`<${constants.DID_PREFIX}:${id}>`));
- }
- return nquads;
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async assertionsByAsset(id) {
- try {
- const assertions = await this.tripleStoreQueue.push({ operation: 'assertionsByAsset', id });
-
- return assertions.map((x) => ({
- id: x.assertionId.slice(8),
- issuer: x.issuer,
- timestamp: x.timestamp,
- }));
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async createAssertion(rawNQuads) {
- const metadata = [];
- const data = [];
- const nquads = [];
- rawNQuads.forEach((nquad) => {
- if (nquad.startsWith(`<${constants.DID_PREFIX}:`)) {
- metadata.push(nquad);
- } else {
- data.push(nquad);
- }
- if (!nquad.includes('hasRootHash') && !nquad.includes('hasBlockchain') && !nquad.includes('hasTransactionHash')) {
- nquads.push(nquad);
- }
- });
- const jsonld = await this.extractMetadata(metadata);
- jsonld.data = data;
- return { jsonld, nquads };
- }
-
- verifyAssertion(assertion, rdf, options = undefined) {
- return new Promise(async (resolve) => {
- try {
- // let dataHash;
- // if (assertion.metadata.visibility) {
- // const framedData = await this.fromRDF(assertion.data, assertion.metadata.type);
- // dataHash = this.validationService.calculateHash(framedData);
- // } else {
- // dataHash = assertion.metadata.dataHash;
- // }
- const { dataHash } = assertion.metadata;
-
- const metadataHash = this.validationService.calculateHash(assertion.metadata);
- const calculatedAssertionId = this.validationService.calculateHash(
- metadataHash + dataHash,
- );
- if (assertion.id !== calculatedAssertionId) {
- this.logger.error({
- msg: `Assertion Id ${assertion.id} doesn't match with calculated ${calculatedAssertionId}`,
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'Assertion ID not matching calculated',
- });
- return resolve(false);
- }
-
- if (!this.validationService.verify(
- assertion.id,
- assertion.signature,
- assertion.metadata.issuer,
- )) {
- this.logger.error({
- msg: 'Signature and issuer don\'t match',
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'Signature and issuer not matching',
- });
- return resolve(false);
- }
-
- if (assertion.metadata.visibility) {
- if (assertion.metadata.UALs && (!options || (options && options.isAsset))) {
- const {
- issuer,
- assertionId,
- } = await this.blockchainService.getAssetProofs(assertion.metadata.UALs[0]);
- if (assertionId !== assertion.id) {
- this.logger.error({
- msg: `Assertion ${assertion.id} doesn't match with calculated ${assertionId}`,
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'AssertionId not matching calculated',
- });
- return resolve(false);
- }
- if (issuer.toLowerCase() !== assertion.metadata.issuer.toLowerCase()) {
- this.logger.error({
- msg: `Issuer ${issuer} doesn't match with received ${assertion.metadata.issuer}`,
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'Issuer not matching',
- });
- return resolve(false);
- }
- } else {
- const calculateRootHash = this.validationService.calculateRootHash(
- [...new Set(rdf)],
- );
- const { rootHash, issuer } = await this.blockchainService
- .getAssertionProofs(assertion.id);
- if (rootHash !== `0x${calculateRootHash}`) {
- this.logger.error({
- msg: `Root hash ${rootHash} doesn't match with calculated 0x${calculateRootHash}`,
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'Root hash not matching calculated',
- });
- return resolve(false);
- }
- if (issuer.toLowerCase() !== assertion.metadata.issuer.toLowerCase()) {
- this.logger.error({
- msg: `Issuer ${issuer} doesn't match with received ${assertion.metadata.issuer}`,
- Event_name: constants.ERROR_TYPE.VERIFY_ASSERTION_ERROR,
- Event_value1: 'Issuer not matching',
- });
- return resolve(false);
- }
- }
- }
- return resolve(true);
- } catch (e) {
- return resolve(false);
- }
- });
- }
-
- async searchByQuery(query, options, localQuery = false) {
- try {
- const assertions = await this.tripleStoreQueue.push({
- operation: 'findAssetsByKeyword', query, options, localQuery,
- });
- if (!assertions) return null;
- const result = [];
- for (let assertion of assertions) {
- assertion.assertionId = assertion.assertionId.replace(`${constants.DID_PREFIX}:`, '');
- const { assertionId } = assertion;
- const assetId = JSON.parse(assertion.assetId)
-
- const {
- assertionId: assertionIdBlockchain,
- } = await this.blockchainService.getAssetProofs(assetId);
-
- if (assertionIdBlockchain !== assertionId) {
- continue;
- }
-
- const nquads = await this.resolve(assertion.assertionId, localQuery, true);
- if (!nquads) {
- continue;
- }
-
- if (localQuery) {
- assertion = await this.createAssertion(nquads);
-
- let object = result.find(
- (x) => x.type === assertion.jsonld.metadata.type
- && x.id === assertion.jsonld.metadata.UALs[0],
- );
- if (!object) {
- object = {
- id: assertion.jsonld.metadata.UALs[0],
- type: assertion.jsonld.metadata.type,
- timestamp: assertion.jsonld.metadata.timestamp,
- issuers: [],
- assertions: [],
- nodes: [this.networkService.getPeerId()],
- };
- result.push(object);
- }
-
- if (object.issuers.indexOf(assertion.jsonld.metadata.issuer) === -1) {
- object.issuers.push(assertion.jsonld.metadata.issuer);
- }
-
- if (object.assertions.indexOf(assertion.jsonld.id) === -1) {
- object.assertions.push(assertion.jsonld.id);
- }
- if (
- new Date(object.timestamp) < new Date(assertion.jsonld.metadata.timestamp)
- ) {
- object.timestamp = assertion.jsonld.metadata.timestamp;
- }
- } else {
- let object = result.find((x) => x.id === assertionId);
- if (!object) {
- object = {
- assertionId,
- node: this.networkService.getPeerId(),
- nquads,
- };
- result.push(object);
- }
- }
- }
-
- return result;
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async searchAssertions(query, options, localQuery = false) {
- try {
- const assertions = await this.tripleStoreQueue.push({
- operation: 'findAssertionsByKeyword', query, options, localQuery,
- });
- if (!assertions) return null;
-
- const result = [];
- for (let assertion of assertions) {
- const assertionId = assertion.assertionId = assertion.assertionId.replace(`${constants.DID_PREFIX}:`, '');
- const nquads = await this.resolve(assertion.assertionId, localQuery, true);
- if (!nquads) {
- continue;
- }
-
- if (localQuery) {
- assertion = await this.createAssertion(nquads);
- let object = result.find((x) => x.id === assertion.id);
- if (!object) {
- object = {
- id: assertion.jsonld.id,
- metadata: assertion.jsonld.metadata,
- signature: assertion.jsonld.signature,
- nodes: [this.networkService.getPeerId()],
- };
- result.push(object);
- }
- } else {
- let object = result.find((x) => x.id === assertionId);
- if (!object) {
- object = {
- assertionId,
- node: this.networkService.getPeerId(),
- nquads,
- };
- result.push(object);
- }
- }
- }
-
- return result;
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async findAssertions(nquads) {
- try {
- let assertions = [];
- for (const nquad of nquads) {
- const result = await this.tripleStoreQueue.push({ operation: 'findAssertions', nquad });
- assertions = [...new Set(assertions.concat(result))];
- }
-
- return assertions;
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- }
- }
-
- async runQuery(query, type) {
- const Id_operation = uuidv1();
- let result;
- this.logger.emit({
- msg: 'Started measuring execution of query node',
- Event_name: 'query_node_start',
- Operation_name: 'query_node',
- Id_operation,
- });
- const quads = [];
-
- try {
- switch (type) {
- case 'SELECT':
- result = await this.tripleStoreQueue.push({ operation: 'select', query });
- break;
- case 'CONSTRUCT':
- result = await this.tripleStoreQueue.push({ operation: 'construct', query });
- result = result.toString();
- if (result) {
- result = result.split('\n').filter((x) => x !== '');
- } else {
- result = [];
- }
- await this.N3Parser.parse(
- result.join('\n'),
- (error, quad, prefixes) => {
- if (quad) {
- quads.push({
- subject: quad._subject.id,
- predicate: quad.predicate.id,
- object: quad.object.id,
- });
- }
- },
- );
- result = quads;
-
- break;
- // case 'ASK':
- // result = this.implementation.ask(query);
- // break;
- default:
- throw Error('Query type not supported');
- }
-
- return result;
- } catch (e) {
- this.handleUnavailableTripleStoreError(e);
- } finally {
- this.logger.emit({
- msg: 'Finished measuring execution of query node',
- Event_name: 'query_node_end',
- Operation_name: 'query_node',
- Id_operation,
- });
- }
- }
-
- async fromNQuads(nquads, type) {
- const Id_operation = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of fromRDF command',
- Event_name: 'fromrdf_start',
- Operation_name: 'fromrdf',
- Id_operation,
- });
- let context;
- let
- frame;
- switch (type.toLowerCase()) {
- case this.constants.GS1EPCIS:
- context = {
- '@context': [
- 'https://gs1.github.io/EPCIS/epcis-context.jsonld',
- {
- example: 'http://ns.example.com/epcis/',
- },
- ],
- };
-
- frame = {
- '@context': [
- 'https://gs1.github.io/EPCIS/epcis-context.jsonld',
- {
- example: 'http://ns.example.com/epcis/',
- },
- ],
- isA: 'EPCISDocument',
- };
- break;
- case this.constants.ERC721:
- case this.constants.OTTELEMETRY:
- context = {
- '@context': 'https://www.schema.org/',
- };
- frame = {
- '@context': 'https://www.schema.org/',
- '@type': type,
- };
- break;
- default:
- context = {
- '@context': ['https://www.schema.org/'],
- };
-
- frame = {};
- }
- const json = await this.workerPool.exec('fromNQuads', [nquads, context, frame]);
-
- this.logger.emit({
- msg: 'Finished measuring execution of fromRDF command',
- Event_name: 'fromrdf_end',
- Operation_name: 'fromrdf',
- Id_operation,
- });
-
- return json;
- }
-
- healthCheck() {
- return this.implementation.healthCheck();
- }
-
- restartService() {
- return this.implementation.restartService();
- }
-
- async appendMetadata(nquads, assertion) {
- const metadata = await this.createMetadata(assertion);
- nquads = nquads.concat(metadata);
- return nquads;
- }
-
- async createMetadata(assertion) {
- const metadata = {
- '@context': 'https://www.schema.org/',
- '@id': `${constants.DID_PREFIX}:${assertion.id}`,
- hasType: assertion.metadata.type,
- hasSignature: assertion.signature,
- hasIssuer: assertion.metadata.issuer,
- hasTimestamp: assertion.metadata.timestamp,
- hasVisibility: assertion.metadata.visibility,
- hasDataHash: assertion.metadata.dataHash,
- hasKeywords: assertion.metadata.keywords,
- };
-
- if (assertion.metadata.UALs) {
- metadata.hasUALs = assertion.metadata.UALs;
- }
-
- const result = await this.workerPool.exec('toNQuads', [metadata]);
- return result;
- }
-
- async appendBlockchainMetadata(nquads, assertion) {
- const blockchainMetadata = await this.workerPool.exec('toNQuads', [{
- '@context': 'https://www.schema.org/',
- '@id': `${constants.DID_PREFIX}:${assertion.id}`,
- hasBlockchain: assertion.blockchain.name,
- hasTransactionHash: assertion.blockchain.transactionHash,
- }]);
- nquads = nquads.concat(blockchainMetadata);
- return nquads;
- }
-
- async extractMetadata(rdf) {
- return new Promise(async (accept, reject) => {
- const parser = new N3.Parser({ format: 'N-Triples', baseIRI: 'http://schema.org/' });
- const result = {
- metadata: {
- keywords: [],
- UALs: [],
- },
- blockchain: {},
- };
-
- const quads = [];
- await parser.parse(
- rdf.join('\n'),
- (error, quad, prefixes) => {
- if (error) {
- reject(error);
- }
- if (quad) {
- quads.push(quad);
- }
- },
- );
-
- for (const quad of quads) {
- try {
- switch (quad._predicate.id) {
- case 'http://schema.org/hasType':
- result.metadata.type = JSON.parse(quad._object.id);
- result.id = quad._subject.id.replace(`${constants.DID_PREFIX}:`, '');
- break;
- case 'http://schema.org/hasTimestamp':
- result.metadata.timestamp = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasUALs':
- result.metadata.UALs.push(JSON.parse(quad._object.id));
- break;
- case 'http://schema.org/hasIssuer':
- result.metadata.issuer = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasVisibility':
- result.metadata.visibility = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasDataHash':
- result.metadata.dataHash = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasKeywords':
- result.metadata.keywords.push(JSON.parse(quad._object.id));
- break;
- case 'http://schema.org/hasSignature':
- result.signature = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasRootHash':
- result.rootHash = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasBlockchain':
- result.blockchain.name = JSON.parse(quad._object.id);
- break;
- case 'http://schema.org/hasTransactionHash':
- result.blockchain.transactionHash = JSON.parse(quad._object.id);
- break;
- default:
- break;
- }
- } catch (e) {
- this.logger.error({
- msg: `Error in extracting metadata: ${e}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.EXTRACT_METADATA_ERROR,
- });
- }
- }
-
- result.metadata.keywords.sort();
- if (!result.metadata.UALs.length) {
- delete result.metadata.UALs;
- } else {
- result.metadata.UALs.sort();
- }
-
- accept(result);
- });
- }
-
- async handleTripleStoreRequest(args) {
- if (this.getTripleStoreQueueLength() > constants.TRIPLE_STORE_QUEUE_LIMIT) {
- throw new Error('Triple store queue is full');
- }
- const { operation } = args;
- let result;
-
- switch (operation) {
- case 'insert':
- result = await this.implementation.insert(args.data, args.assertionId);
- break;
- case 'resolve':
- result = await this.implementation.resolve(args.id);
- break;
- case 'assertionsByAsset':
- result = await this.implementation.assertionsByAsset(args.id);
- break;
- case 'findAssetsByKeyword':
- result = await this.implementation.findAssetsByKeyword(
- args.query,
- args.options,
- args.localQuery,
- );
- break;
- case 'findAssertionsByKeyword':
- result = await this.implementation.findAssertionsByKeyword(
- args.query,
- args.options,
- args.localQuery,
- );
- break;
- case 'construct':
- result = await this.implementation.construct(args.query);
- break;
- case 'findAssertions':
- result = await this.implementation.findAssertions(args.nquad);
- break;
- case 'select':
- result = await this.implementation.execute(args.query);
- break;
- default:
- throw new Error('Unknown operation for triple store');
- }
-
- return result;
- }
-
- handleUnavailableTripleStoreError(e) {
- if (e.code === 'ECONNREFUSED') {
- this.logger.error({
- msg: `Triple Store (${this.getName()}) not available: ${e.message}. ${e.stack}`,
- Event_name: constants.ERROR_TYPE.TRIPLE_STORE_UNAVAILABLE_ERROR,
- Event_value1: e.message,
- });
- this.reinitalize();
- } else {
- throw e;
- }
- }
-
- isNodeBusy(busynessLimit) {
- const isTripleStoreBusy = this.getTripleStoreQueueLength() > busynessLimit;
- const isToobusy = toobusy();
- if (isTripleStoreBusy) {
- this.logger.info('TripleStore is busy.');
- }
- if (isToobusy) {
- this.logger.info('Node is busy.');
- }
- return isToobusy || isTripleStoreBusy;
- }
-}
-
-module.exports = DataService;
diff --git a/modules/service/file-service.js b/modules/service/file-service.js
deleted file mode 100644
index cdbc4dbca..000000000
--- a/modules/service/file-service.js
+++ /dev/null
@@ -1,130 +0,0 @@
-const path = require('path');
-const { exists, mkdir } = require('fs');
-const fs = require('fs');
-const appRootPath = require('app-root-path');
-
-const MIGRATION_FOLDER_NAME = 'migrations';
-
-class FileService {
- constructor(ctx) {
- this.config = ctx.config;
- }
-
- getFileExtension(fileName) {
- return path.extname(fileName).toLowerCase();
- }
-
- /**
- * Write contents to file
- * @param directory
- * @param filename
- * @param data
- * @returns {Promise}
- */
- writeContentsToFile(directory, filename, data) {
- return new Promise((resolve, reject) => {
- mkdir(directory, { recursive: true }, (err) => {
- if (err) {
- reject(err);
- } else {
- const fullpath = path.join(directory, filename);
- try {
- fs.writeFile(fullpath, data, (err) => {
- if (err) {
- reject(err);
- } else {
- resolve(fullpath);
- }
- });
- } catch (e) {
- reject(e);
- }
- }
- });
- });
- }
-
- createFolder(folderName) {}
-
- readFileOnPath(filePath) {
- return this._readFile(filePath, false);
- }
-
- /**
- * Loads JSON data from file
- * @returns {Promise}
- * @private
- */
- loadJsonFromFile(filePath) {
- return this._readFile(filePath, true);
- }
-
- _readFile(filePath, convertToJSON = false) {
- return new Promise((resolve, reject) => {
- exists(filePath, (exist) => {
- if (exist) {
- fs.readFile(filePath, (err, data) => {
- if (err) {
- reject(err);
- } else {
- try {
- if (convertToJSON) {
- const fileJson = JSON.parse(data);
- resolve(fileJson);
- }
- resolve(data.toString());
- } catch (error) {
- reject(error);
- }
- }
- });
- } else {
- reject(new Error(`File doesn't exist on file path: ${filePath}`));
- }
- });
- });
- }
-
- removeFile(filePath) {
- return new Promise((resolve, reject) => {
- exists(filePath, (exist) => {
- if (exist) {
- fs.unlink(filePath, (err) => {
- if (err) {
- reject(err);
- } else {
- resolve(true);
- }
- });
- } else {
- resolve(false);
- }
- });
- });
- }
-
- getDataFolderPath() {
- if (process.env.NODE_ENV === 'testnet' || process.env.NODE_ENV === 'mainnet') {
- return path.join(appRootPath.path, '..', this.config.appDataPath);
- }
- return path.join(appRootPath.path, this.config.appDataPath);
- }
-
- getUpdateFilePath() {
- return path.join(this.getDataFolderPath(), 'UPDATED');
- }
-
- getMigrationFolderPath() {
- return path.join(this.getDataFolderPath(), MIGRATION_FOLDER_NAME);
- }
-
- getHandlerIdCachePath() {
- return path.join(this.getDataFolderPath(), 'handler_id_cache');
- }
-
- getHandlerIdDocumentPath(handlerId) {
- return path.join(this.getHandlerIdCachePath(), handlerId);
- }
-}
-
-module.exports = FileService;
diff --git a/modules/service/network-service.js b/modules/service/network-service.js
deleted file mode 100644
index 32a7aa5b7..000000000
--- a/modules/service/network-service.js
+++ /dev/null
@@ -1,98 +0,0 @@
-const { v1: uuidv1 } = require('uuid');
-const Libp2p = require('../../external/libp2p-service');
-
-class NetworkService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- this.rankingService = ctx.rankingService;
- this.workerPool = ctx.workerPool;
- }
-
- initialize() {
- this.implementation = new Libp2p({
- bootstrapMultiAddress: this.config.network.bootstrap,
- port: this.config.network.port,
- privateKey: this.config.network.privateKey,
- workerPool: this.workerPool,
- });
- return this.implementation.initialize(this.logger);
- }
-
- getName() {
- return this.implementation.getName();
- }
-
- /**
- * Retrieve the closest peers to the given key.
- *
- * @param {String} key
- * @param {Number} limit
- * @returns Promise{Iterable}
- */
- async findNodes(key, protocol, limit) {
- const Id_operation = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of find nodes', Event_name: 'find_nodes_start', Operation_name: 'find_nodes', Id_operation,
- });
- this.logger.emit({
- msg: 'Started measuring execution of kad find nodes', Event_name: 'kad_find_nodes_start', Operation_name: 'find_nodes', Id_operation,
- });
- const nodes = await this.implementation.findNodes(key, protocol);
- this.logger.emit({
- msg: 'Finished measuring execution of kad find nodes ', Event_name: 'kad_find_nodes_end', Operation_name: 'find_nodes', Id_operation,
- });
- this.logger.emit({
- msg: 'Started measuring execution of rank nodes', Event_name: 'rank_nodes_start', Operation_name: 'find_nodes', Id_operation,
- });
- const rankedNodes = await this.rankingService.rank(nodes, key, limit, ['kad-identity']);
- this.logger.emit({
- msg: 'Finished measuring execution of rank nodes', Event_name: 'rank_nodes_end', Operation_name: 'find_nodes', Id_operation,
- });
- this.logger.emit({
- msg: 'Finished measuring execution of find nodes', Event_name: 'find_nodes_end', Operation_name: 'find_nodes', Id_operation,
- });
- return rankedNodes;
- }
-
- getPeers() {
- return this.implementation.getPeers();
- }
-
- /**
- * Store the given key/value pair at the peer `target`.
- *
- * @param {String} key
- * @param {Object} object - value to be stored
- * @param {PeerId} target
- */
- store(peer, key, object) {
- return this.implementation.store(peer, key, object);
- }
-
- handleMessage(eventName, handler, options) {
- this.implementation.handleMessage(eventName, handler, options);
- }
-
- async sendMessage(eventName, data, peerId) {
- return this.implementation.sendMessage(eventName, data, peerId);
- }
-
- getPeerId() {
- return this.implementation.getPeerId();
- }
-
- getPrivateKey() {
- return this.implementation.getPrivateKey();
- }
-
- async healthCheck() {
- return this.implementation.healthCheck();
- }
-
- async restartService() {
- return this.implementation.restartService();
- }
-}
-
-module.exports = NetworkService;
diff --git a/modules/service/node-service.js b/modules/service/node-service.js
deleted file mode 100644
index fe3978113..000000000
--- a/modules/service/node-service.js
+++ /dev/null
@@ -1,13 +0,0 @@
-class NodeService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- }
-
- stop(exitCode) {
- this.logger.closeLogger('Stopping the node...');
- process.exit(exitCode);
- }
-}
-
-module.exports = NodeService;
diff --git a/modules/service/publish-service.js b/modules/service/publish-service.js
deleted file mode 100644
index 0c381bd76..000000000
--- a/modules/service/publish-service.js
+++ /dev/null
@@ -1,204 +0,0 @@
-const { v1: uuidv1 } = require('uuid');
-const sleep = require('sleep-async')().Promise;
-const constants = require('../constants');
-
-class PublishService {
- constructor(ctx) {
- this.networkService = ctx.networkService;
- this.validationService = ctx.validationService;
- this.blockchainService = ctx.blockchainService;
- this.dataService = ctx.dataService;
- this.logger = ctx.logger;
- this.commandExecutor = ctx.commandExecutor;
- this.fileService = ctx.fileService;
- this.workerPool = ctx.workerPool;
- }
-
- async publish(
- fileContent,
- fileExtension,
- keywords,
- visibility,
- ual,
- handlerId,
- operationId,
- isTelemetry = false,
- ) {
- try {
- this.logger.emit({
- msg: 'Started measuring execution of data canonization',
- Event_name: 'publish_canonization_start',
- Operation_name: 'publish_canonization',
- Id_operation: operationId,
- });
- let {
- assertion,
- nquads,
- } = await this.dataService.canonize(fileContent, fileExtension);
- this.logger.emit({
- msg: 'Finished measuring execution of data canonization',
- Event_name: 'publish_canonization_end',
- Operation_name: 'publish_canonization',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of generate metadata',
- Event_name: 'publish_generate_metadata_start',
- Operation_name: 'publish_generate_metadata',
- Id_operation: operationId,
- });
- assertion.metadata.issuer = this.validationService.getIssuer();
- assertion.metadata.visibility = visibility;
- assertion.metadata.keywords = keywords;
- assertion.metadata.keywords.sort();
- let method = constants.PUBLISH_METHOD.PUBLISH;
- if (ual === null) {
- method = constants.PUBLISH_METHOD.PROVISION;
- ual = this.validationService.calculateHash(
- assertion.metadata.timestamp
- + assertion.metadata.type
- + assertion.metadata.issuer,
- );
- assertion.metadata.UALs = [ual];
- } else if (ual !== undefined) {
- method = constants.PUBLISH_METHOD.UPDATE;
- assertion.metadata.UALs = [ual];
- }
-
- assertion.metadata.dataHash = this.validationService.calculateHash(assertion.data);
- assertion.metadataHash = this.validationService.calculateHash(assertion.metadata);
- assertion.id = this.validationService.calculateHash(
- assertion.metadataHash + assertion.metadata.dataHash,
- );
- assertion.signature = this.validationService.sign(assertion.id);
-
- nquads = await this.dataService.appendMetadata(nquads, assertion);
- assertion.rootHash = this.validationService.calculateRootHash(nquads);
-
- if (ual !== undefined) {
- this.logger.info(`UAL: ${ual}`);
- }
- this.logger.info(`Assertion ID: ${assertion.id}`);
- this.logger.info(`Assertion metadataHash: ${assertion.metadataHash}`);
- this.logger.info(`Assertion dataHash: ${assertion.metadata.dataHash}`);
- this.logger.info(`Assertion rootHash: ${assertion.rootHash}`);
- this.logger.info(`Assertion signature: ${assertion.signature}`);
- this.logger.info(`Assertion length in N-QUADS format: ${nquads.length}`);
- this.logger.info(`Keywords: ${keywords}`);
- this.logger.emit({
- msg: assertion.id,
- Event_name: 'publish_assertion_id',
- Operation_name: 'publish_assertion_id',
- Id_operation: operationId,
- });
-
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- const documentPath = await this.fileService
- .writeContentsToFile(handlerIdCachePath, handlerId,
- await this.workerPool.exec('JSONStringify', [{
- nquads, assertion,
- }]));
-
- const commandSequence = [
- 'submitProofsCommand',
- 'insertAssertionCommand',
- 'sendAssertionCommand',
- ];
-
- await this.commandExecutor.add({
- name: commandSequence[0],
- sequence: commandSequence.slice(1),
- delay: 0,
- data: {
- documentPath, handlerId, method, isTelemetry, operationId,
- },
- transactional: false,
- });
- this.logger.emit({
- msg: 'Finished measuring execution of generate metadata',
- Event_name: 'publish_generate_metadata_end',
- Operation_name: 'publish_generate_metadata',
- Id_operation: operationId,
- });
- return assertion;
- } catch (e) {
- return null;
- }
- }
-
- async store(assertion, node) {
- // await this.networkService.store(node, topic, {});
- let retries = 0;
- let response = await this.networkService.sendMessage(
- constants.NETWORK_PROTOCOLS.STORE,
- assertion,
- node,
- );
- while (
- response === constants.NETWORK_RESPONSES.BUSY
- && retries < constants.STORE_MAX_RETRIES
- ) {
- retries += 1;
- await sleep.sleep(constants.STORE_BUSY_REPEAT_INTERVAL_IN_MILLS);
- response = await this.networkService.sendMessage(
- constants.NETWORK_PROTOCOLS.STORE,
- assertion,
- node,
- );
- }
-
- return response;
- }
-
- async handleStore(data) {
- if (!data || data.rdf) return false;
- if (this.dataService.isNodeBusy(constants.BUSYNESS_LIMITS.HANDLE_STORE)) {
- return constants.NETWORK_RESPONSES.BUSY;
- }
-
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle store command',
- Event_name: 'handle_store_start',
- Operation_name: 'handle_store',
- Id_operation: operationId,
- });
-
- try {
- const { jsonld, nquads } = await this.dataService.createAssertion(data.nquads);
- const status = await this.dataService.verifyAssertion(jsonld, nquads);
-
- // todo check root hash on the blockchain
- if (status) {
- await this.dataService.insert(data.nquads.join('\n'), `${constants.DID_PREFIX}:${data.id}`);
- this.logger.info(`Assertion ${data.id} has been successfully inserted`);
- }
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle store command',
- Event_name: 'handle_store_end',
- Operation_name: 'handle_store',
- Id_operation: operationId,
- });
-
- return status;
- } catch (e) {
- this.logger.emit({
- msg: 'Finished measuring execution of handle store command',
- Event_name: 'handle_store_end',
- Operation_name: 'handle_store',
- Id_operation: operationId,
- });
- this.logger.error({
- msg: `Error while handling store: ${e} - ${e.stack}`,
- Operation_name: 'Error',
- Event_name: constants.ERROR_TYPE.HANDLE_STORE_ERROR,
- Id_operation: operationId,
- });
- return false;
- }
- }
-}
-
-module.exports = PublishService;
diff --git a/modules/service/query-service.js b/modules/service/query-service.js
deleted file mode 100644
index 239bfc069..000000000
--- a/modules/service/query-service.js
+++ /dev/null
@@ -1,337 +0,0 @@
-const { v1: uuidv1 } = require('uuid');
-const constants = require('../constants');
-
-class QueryService {
- constructor(ctx) {
- this.logger = ctx.logger;
- this.networkService = ctx.networkService;
- this.validationService = ctx.validationService;
- this.dataService = ctx.dataService;
- this.fileService = ctx.fileService;
- this.workerPool = ctx.workerPool;
- }
-
- async resolve(id, load, isAssetRequested, node, operationId) {
- const resolvePromise = new Promise(async (resolve, reject) => {
- const timer = setTimeout(() => {
- resolve(null);
- }, constants.RESOLVE_MAX_TIME_MILLIS);
-
- const result = await this.networkService.sendMessage(
- constants.NETWORK_PROTOCOLS.RESOLVE,
- id,
- node,
- );
- clearTimeout(timer);
- resolve(result);
- });
-
- this.logger.emit({
- msg: 'Started measuring execution of resolve fetch from nodes',
- Event_name: 'resolve_fetch_from_nodes_start',
- Operation_name: 'resolve_fetch_from_nodes',
- Id_operation: operationId,
- });
-
- const result = await resolvePromise;
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve fetch from nodes',
- Event_name: 'resolve_fetch_from_nodes_end',
- Operation_name: 'resolve_fetch_from_nodes',
- Id_operation: operationId,
- });
- if (!result
- || (Array.isArray(result) && result[0] === constants.NETWORK_RESPONSES.ACK)
- || result === constants.NETWORK_RESPONSES.BUSY) {
- return null;
- }
-
- const rawNquads = result.nquads ? result.nquads : result;
- this.logger.emit({
- msg: 'Started measuring execution of create assertion from nquads',
- Event_name: 'resolve_create_assertion_from_nquads_start',
- Operation_name: 'resolve_create_assertion_from_nquads',
- Id_operation: operationId,
- });
-
- const assertion = await this.dataService.createAssertion(rawNquads);
-
- this.logger.emit({
- msg: 'Finished measuring execution of create assertion from nquads',
- Event_name: 'resolve_create_assertion_from_nquads_end',
- Operation_name: 'resolve_create_assertion_from_nquads',
- Id_operation: operationId,
- });
-
- this.logger.emit({
- msg: 'Started measuring execution of resolve verify assertion',
- Event_name: 'resolve_verify_assertion_start',
- Operation_name: 'resolve_verify_assertion',
- Id_operation: operationId,
- });
-
- const status = await this.dataService.verifyAssertion(
- assertion.jsonld,
- assertion.nquads,
- { isAsset: isAssetRequested },
- );
-
- this.logger.emit({
- msg: 'Finished measuring execution of resolve verify assertion',
- Event_name: 'resolve_verify_assertion_end',
- Operation_name: 'resolve_verify_assertion',
- Id_operation: operationId,
- });
-
- if (status && load) {
- await this.dataService.insert(rawNquads.join('\n'), `${constants.DID_PREFIX}:${assertion.jsonld.metadata.id}`);
- this.logger.info(`Assertion ${assertion.jsonld.metadata.id} has been successfully inserted`);
- }
- return status ? assertion : null;
- }
-
- async handleResolve(id) {
- if (this.dataService.isNodeBusy(constants.BUSYNESS_LIMITS.HANDLE_RESOLVE)) {
- return constants.NETWORK_RESPONSES.BUSY;
- }
-
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle resolve command',
- Event_name: 'handle_resolve_start',
- Operation_name: 'handle_resolve',
- Id_operation: operationId,
- });
-
- const nquads = await this.dataService.resolve(id);
- if (nquads) {
- this.logger.info(`Number of n-quads retrieved from the database is ${nquads.length}`);
- }
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle resolve command',
- Event_name: 'handle_resolve_end',
- Operation_name: 'handle_resolve',
- Id_operation: operationId,
- });
-
- if (!nquads) {
- return null;
- }
- return nquads;
- }
-
- async search(data, node) {
- const result = await this.networkService.sendMessage(
- constants.NETWORK_PROTOCOLS.SEARCH,
- data,
- node,
- );
- return result;
- }
-
- async handleSearch(request) {
- if (this.dataService.isNodeBusy(constants.BUSYNESS_LIMITS.HANDLE_SEARCH_ENTITIES)) {
- return constants.NETWORK_RESPONSES.BUSY;
- }
-
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle search command',
- Event_name: 'handle_search_start',
- Operation_name: 'handle_search',
- Id_operation: operationId,
- });
-
- const {
- query,
- issuers,
- types,
- prefix,
- limit,
- handlerId,
- } = request;
- const response = await this.dataService.searchByQuery(query, {
- issuers,
- types,
- prefix,
- limit,
- });
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle search command',
- Event_name: 'handle_search_end',
- Operation_name: 'handle_search',
- Id_operation: operationId,
- });
-
- return { response, handlerId };
- }
-
- async handleSearchResult(request) {
- if (request === constants.NETWORK_RESPONSES.BUSY) {
- return false;
- }
-
- // TODO: add mutex
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle search result command',
- Event_name: 'handle_search_result_start',
- Operation_name: 'handle_search_result',
- Id_operation: operationId,
- });
-
- const { handlerId, response } = request;
-
- const documentPath = this.fileService.getHandlerIdDocumentPath(handlerId);
- const handlerData = await this.fileService.loadJsonFromFile(documentPath);
-
- for (const assertion of response) {
- if (!assertion || !assertion.nquads) {
- continue;
- }
-
- const rawNquads = assertion.nquads ? assertion.nquads : assertion.rdf;
- const { jsonld } = await this.dataService.createAssertion(rawNquads);
- let object = handlerData.find(
- (x) => x.type === jsonld.metadata.type && x.id === jsonld.metadata.UALs[0],
- );
- if (!object) {
- object = {
- type: jsonld.metadata.type,
- id: jsonld.metadata.UALs[0],
- timestamp: jsonld.metadata.timestamp,
- issuers: [],
- assertions: [],
- nodes: [assertion.node],
- };
- handlerData.push(object);
- }
-
- if (object.nodes.indexOf(assertion.node) === -1) {
- object.nodes.push(assertion.node);
- }
-
- if (object.issuers.indexOf(jsonld.metadata.issuer) === -1) {
- object.issuers.push(jsonld.metadata.issuer);
- }
-
- if (object.assertions.indexOf(jsonld.id) === -1) {
- object.assertions.push(jsonld.id);
- }
- if (new Date(object.timestamp) < new Date(jsonld.metadata.timestamp)) {
- object.timestamp = jsonld.metadata.timestamp;
- }
- }
-
- await this.fileService.writeContentsToFile(
- this.fileService.getHandlerIdCachePath(),
- handlerId,
- await this.workerPool.exec('JSONStringify', [handlerData]),
- );
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle search result command',
- Event_name: 'handle_search_result_end',
- Operation_name: 'handle_search_result',
- Id_operation: operationId,
- });
-
- return true;
- }
-
- async searchAssertions(data, node) {
- const result = await this.networkService.sendMessage(
- constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
- data,
- node,
- );
- return result;
- }
-
- async handleSearchAssertions(request) {
- if (this.dataService.isNodeBusy(constants.BUSYNESS_LIMITS.HANDLE_SEARCH_ASSERTIONS)) {
- return constants.NETWORK_RESPONSES.BUSY;
- }
-
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle search assertions command',
- Event_name: 'handle_search_assertions_start',
- Operation_name: 'handle_search_assertions',
- Id_operation: operationId,
- });
-
- const { query, options, handlerId } = request;
- const response = await this.dataService.searchAssertions(query, options || {});
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle search assertions command',
- Event_name: 'handle_search_assertions_end',
- Operation_name: 'handle_search_assertions',
- Id_operation: operationId,
- });
- return { response, handlerId };
- }
-
- async handleSearchAssertionsResult(request) {
- if (request === constants.NETWORK_RESPONSES.BUSY) {
- return false;
- }
-
- // TODO: add mutex
- const operationId = uuidv1();
- this.logger.emit({
- msg: 'Started measuring execution of handle search assertions result command',
- Event_name: 'handle_search_assertions_result_start',
- Operation_name: 'handle_search_assertions_result',
- Id_operation: operationId,
- });
- const { handlerId, response } = request;
-
- const documentPath = this.fileService.getHandlerIdDocumentPath(handlerId);
- const handlerData = await this.fileService.loadJsonFromFile(documentPath);
- if (response !== undefined && response.length && handlerData) {
- for (const object of response) {
- const assertion = handlerData.find((x) => x.id === object.assertionId);
- if (assertion) {
- if (assertion.nodes.indexOf(object.node) === -1) {
- // TODO: is set needed ?
- assertion.nodes = [...new Set(assertion.nodes.concat(object.node))];
- }
- } else {
- if (!object || !object.nquads) {
- continue;
- }
- const rawNquads = object.nquads ? object.nquads : object.rdf;
- const assertion = await this.dataService.createAssertion(rawNquads);
-
- handlerData.push({
- id: assertion.jsonld.id,
- metadata: assertion.jsonld.metadata,
- signature: assertion.jsonld.signature,
- nodes: [object.node],
- });
- }
- }
-
- await this.fileService.writeContentsToFile(
- this.fileService.getHandlerIdCachePath(),
- handlerId,
- JSON.stringify(handlerData),
- );
- }
-
- this.logger.emit({
- msg: 'Finished measuring execution of handle search assertions result command',
- Event_name: 'handle_search_assertions_result_end',
- Operation_name: 'handle_search_assertions_result',
- Id_operation: operationId,
- });
- return true;
- }
-}
-
-module.exports = QueryService;
diff --git a/modules/service/ranking-service.js b/modules/service/ranking-service.js
deleted file mode 100644
index b982e1fd9..000000000
--- a/modules/service/ranking-service.js
+++ /dev/null
@@ -1,22 +0,0 @@
-const KadIdentityRanking = require('../../external/kad-identity-ranking-service');
-
-class RankingService {
- constructor(ctx) {
- this.logger = ctx.logger;
- }
-
- initialize() {
- // TODO: Initialize array of ranking implementations
- this.implementation = new KadIdentityRanking();
- this.implementation.initialize(this.logger);
- }
-
- async rank(nodes, topic, replicationFactor, rankingTypes) {
- let rankedNodes = [];
- // TODO: Iterate and execute all ranking implementations provided in rankingTypes
- rankedNodes = await this.implementation.execute(nodes, topic, replicationFactor);
- return rankedNodes;
- }
-}
-
-module.exports = RankingService;
diff --git a/modules/service/validation-service.js b/modules/service/validation-service.js
deleted file mode 100644
index 505e0a818..000000000
--- a/modules/service/validation-service.js
+++ /dev/null
@@ -1,65 +0,0 @@
-const sortedStringify = require('json-stable-stringify');
-const MarkleValidation = require('../../external/merkle-validation-service');
-
-class ValidationService {
- constructor(ctx) {
- this.config = ctx.config;
- this.logger = ctx.logger;
- this.constants = ctx.constants;
- }
-
- initialize() {
- this.implementation = new MarkleValidation();
- return this.implementation.initialize(this.logger);
- }
-
- getName() {
- return this.implementation.getName();
- }
-
- calculateHash(assertion) {
- if (typeof assertion !== 'string' && !(assertion instanceof String)) assertion = sortedStringify(assertion);
- return this.implementation.calculateHash(assertion);
- }
-
- calculateRootHash(rdf) {
- rdf.sort();
- return this.implementation.calculateRootHash(rdf);
- }
-
- async getProofs(rdf, nquads) {
- rdf.sort();
- const tree = this.implementation.getMerkleTree(rdf);
- const result = [];
- for (let triple of nquads) {
- triple = triple.replace(/_:genid(.){37}/gm, '_:$1');
- const index = rdf.indexOf(triple);
- const proof = tree.getProof(index);
- result.push({ triple, tripleHash: this.implementation.calculateHash(triple), proof });
- }
-
- return result;
- }
-
- sign(assertionId) {
- return this.implementation.sign(assertionId, this.config.blockchain[0].privateKey);
- }
-
- verify(assertionId, signature, issuer) {
- return this.implementation.verify(assertionId, signature, issuer);
- }
-
- getIssuer() {
- return this.config.blockchain[0].publicKey.toLowerCase();
- }
-
- createProofs(assertion, triples) {
- return this.implementation.createProofs(assertion, triples);
- }
-
- validateProof(triples, proofs, root) {
- return this.implementation.validateProof(triples, proofs, root);
- }
-}
-
-module.exports = ValidationService;
diff --git a/modules/service/watchdog-service.js b/modules/service/watchdog-service.js
deleted file mode 100644
index ef0213d6b..000000000
--- a/modules/service/watchdog-service.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const watchdog = require('watchdog');
-
-class WatchdogService {
- constructor(ctx) {
- this.logger = ctx.logger;
- this.config = ctx.config;
- this.blockchainService = ctx.blockchainService;
- this.dataService = ctx.dataService;
- this.networkService = ctx.networkService;
- this.services = ['blockchain', 'network', 'data'];
- }
-
- initialize() {
- this.food = { data: { initialFeed: true, msg: 'Watchdog started!' }, timeout: 2 * 60 * 1000 };
- this.dog = new watchdog.Watchdog();
-
- this.dog.on('reset', async () => {
- const aliveServices = {};
- for (const service of this.services) {
- aliveServices[`${service}ServiceAlive`] = await this[`${service}Service`].healthCheck();
- }
-
- this.food.data = aliveServices;
- this.food.timeout = 5 * 1000;
-
- this.dog.feed(this.food);
- });
-
- this.dog.on('feed', (response) => {
- if (!response.data.initialFeed) {
- this.logger.info(`Service status:${JSON.stringify(response.data)}`);
- for (const service of this.services) {
- if (!response.data[`${service}ServiceAlive`]) {
- this[`${service}Service`].restartService();
- }
- }
- } else {
- this.logger.info(`${response.data.msg}`);
- }
- });
-
- // Initial feeding
- this.dog.feed(this.food);
- }
-}
-
-module.exports = WatchdogService;
diff --git a/modules/utilities.js b/modules/utilities.js
deleted file mode 100644
index 98f814c9b..000000000
--- a/modules/utilities.js
+++ /dev/null
@@ -1,40 +0,0 @@
-const { sha256 } = require('multiformats/hashes/sha2');
-const { Record } = require('libp2p-record');
-
-/**
- * Creates a DHT ID by hashing a given Uint8Array.
- *
- * @param {Uint8Array} buf
- * @returns {Promise}
- */
-exports.convertBuffer = async (buf) => (await sha256.digest(buf)).digest;
-
-/**
- * Create a new put record, encodes and signs it if enabled.
- *
- * @param {Uint8Array} key
- * @param {Uint8Array} value
- * @returns {Uint8Array}
- */
-exports.createPutRecord = (key, value) => {
- const timeReceived = new Date();
- const rec = new Record(key, value, timeReceived);
-
- return rec.serialize();
-};
-
-exports.isArrayOfStrings = (arr) => {
- try {
- const bodyAssets = JSON.parse(arr.toLowerCase());
- if (!(Array.isArray(bodyAssets)) | !(bodyAssets.length > 0) | !bodyAssets.every((i) => (typeof i === 'string')) | bodyAssets[0] === '') {
- return false;
- }
- } catch (e) {
- return false;
- }
- return true;
-};
-
-class Utilities {
-
-}
diff --git a/ot-node.js b/ot-node.js
index 330eb3d59..ddd0f7cf6 100644
--- a/ot-node.js
+++ b/ot-node.js
@@ -1,26 +1,26 @@
-const { execSync } = require('child_process');
const DeepExtend = require('deep-extend');
const rc = require('rc');
const fs = require('fs');
const queue = require('fastq');
const appRootPath = require('app-root-path');
const path = require('path');
-const DependencyInjection = require('./modules/service/dependency-injection');
-const Logger = require('./modules/logger/logger');
-const constants = require('./modules/constants');
+const EventEmitter = require('events');
+const DependencyInjection = require('./src/service/dependency-injection');
+const Logger = require('./src/logger/logger');
+const constants = require('./src/constants/constants');
const pjson = require('./package.json');
const configjson = require('./config/config.json');
-const M1FolderStructureInitialMigration = require('./modules/migration/m1-folder-structure-initial-migration');
-const FileService = require('./modules/service/file-service');
+const FileService = require('./src/service/file-service');
class OTNode {
constructor(config) {
this.initializeConfiguration(config);
- this.logger = new Logger(this.config.logLevel, this.config.telemetryHub.enabled);
+ this.logger = new Logger(this.config.logLevel, this.config.telemetry.enabled);
+ this.checkNodeVersion();
}
async start() {
- await this.runFolderStructureInitialMigration();
+ await this.removeUpdateFile();
this.logger.info(' ██████╗ ████████╗███╗ ██╗ ██████╗ ██████╗ ███████╗');
this.logger.info('██╔═══██╗╚══██╔══╝████╗ ██║██╔═══██╗██╔══██╗██╔════╝');
@@ -35,24 +35,29 @@ class OTNode {
this.logger.info(`Node is running in ${process.env.NODE_ENV} environment`);
this.initializeDependencyContainer();
+ this.initializeEventEmitter();
+
await this.initializeModules();
- await this.initializeDataModule();
- await this.initializeOperationalDbModule();
- await this.initializeValidationModule();
- await this.initializeBlockchainModule();
- await this.initializeNetworkModule();
+ await this.saveNetworkModulePeerIdAndPrivKey();
+ await this.createProfiles();
+
+ await this.initializeControllers();
await this.initializeCommandExecutor();
- await this.initializeTelemetryHubModule();
- await this.initializeRpcModule();
- // await this.initializeWatchdog();
+ await this.initializeTelemetryInjectionService();
+
+ this.logger.info('Node is up and running!');
}
- async runFolderStructureInitialMigration() {
- const m1FolderStructureInitialMigration = new M1FolderStructureInitialMigration(
- this.logger,
- this.config,
- );
- return m1FolderStructureInitialMigration.run();
+ checkNodeVersion() {
+ const nodeMajorVersion = process.versions.node.split('.')[0];
+ this.logger.warn('======================================================');
+ this.logger.warn(`Using node.js version: ${process.versions.node}`);
+ if (nodeMajorVersion < constants.MIN_NODE_VERSION) {
+ this.logger.warn(
+ `This node was tested with node.js version 16. To make sure that your node is running properly please update your node version!`,
+ );
+ }
+ this.logger.warn('======================================================');
}
initializeConfiguration(userConfig) {
@@ -67,23 +72,6 @@ class OTNode {
// set default user configuration filename
this.config.configFilename = '.origintrail_noderc';
}
- if (
- !this.config.blockchain[0].hubContractAddress &&
- this.config.blockchain[0].networkId === defaultConfig.blockchain[0].networkId
- ) {
- this.config.blockchain[0].hubContractAddress =
- configjson[process.env.NODE_ENV].blockchain[0].hubContractAddress;
- }
-
- const fileService = new FileService({ config: this.config });
-
- const updateFilePath = fileService.getUpdateFilePath();
- if (fs.existsSync(updateFilePath)) {
- this.config.otNodeUpdated = true;
- fileService.removeFile(updateFilePath).catch((error) => {
- this.logger.warn(`Unable to remove update file. Error: ${error}`);
- });
- }
}
initializeDependencyContainer() {
@@ -109,98 +97,90 @@ class OTNode {
await Promise.all(initializationPromises);
this.logger.info(`All modules initialized!`);
} catch (e) {
- this.logger.error({
- msg: `Module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.MODULE_INITIALIZATION_ERROR,
- });
+ this.logger.error(`Module initialization failed. Error message: ${e.message}`);
process.exit(1);
}
}
- async initializeDataModule() {
+ initializeEventEmitter() {
+ const eventEmitter = new EventEmitter();
+ DependencyInjection.registerValue(this.container, 'eventEmitter', eventEmitter);
+
+ this.logger.info('Event emitter initialized');
+ }
+
+ async initializeControllers() {
try {
- const dataService = this.container.resolve('dataService');
- await dataService.initialize();
- this.logger.info(`Data module: ${dataService.getName()} implementation`);
+ this.logger.info('Initializing http api router');
+ const httpApiRouter = this.container.resolve('httpApiRouter');
+ await httpApiRouter.initialize();
} catch (e) {
- this.logger.error({
- msg: `Data module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.DATA_MODULE_INITIALIZATION_ERROR,
- });
+ this.logger.error(
+ `Http api router initialization failed. Error message: ${e.message}, ${e.stackTrace}`,
+ );
}
- }
- async initializeOperationalDbModule() {
try {
- this.logger.info('Operational database module: sequelize implementation');
- // eslint-disable-next-line global-require
- const db = require('./models');
-
- if (this.config.otNodeUpdated) {
- execSync(`npx sequelize --config=./config/sequelizeConfig.js db:migrate`);
- }
-
- await db.sequelize.sync();
+ this.logger.info('Initializing rpc router');
+ const rpcRouter = this.container.resolve('rpcRouter');
+ await rpcRouter.initialize();
} catch (e) {
- this.logger.error({
- msg: `Operational database module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.OPERATIONALDB_MODULE_INITIALIZATION_ERROR,
- });
+ this.logger.error(
+ `RPC router initialization failed. Error message: ${e.message}, ${e.stackTrace}`,
+ );
}
}
- async initializeNetworkModule() {
- try {
- const networkService = this.container.resolve('networkService');
- const result = await networkService.initialize();
-
- this.config.network.peerId = result.peerId;
- if (
- !this.config.network.privateKey &&
- this.config.network.privateKey !== result.privateKey
- ) {
- this.config.network.privateKey = result.privateKey;
- if (process.env.NODE_ENV !== 'development' && process.env.NODE_ENV !== 'test') {
- this.savePrivateKeyInUserConfigurationFile(result.privateKey);
+ async createProfiles() {
+ const blockchainModuleManager = this.container.resolve('blockchainModuleManager');
+ const createProfilesPromises = blockchainModuleManager
+ .getImplementationsNames()
+ .map(async (blockchain) => {
+ try {
+ if (!blockchainModuleManager.identityExists(blockchain)) {
+ this.logger.info(`Creating blockchain identity on network: ${blockchain}`);
+ const networkModuleManager = this.container.resolve('networkModuleManager');
+ const peerId = networkModuleManager.getPeerId();
+ await blockchainModuleManager.deployIdentity(blockchain);
+ this.logger.info(`Creating profile on network: ${blockchain}`);
+ await blockchainModuleManager.createProfile(blockchain, peerId);
+ if (
+ process.env.NODE_ENV !== 'development' &&
+ process.env.NODE_ENV !== 'test'
+ ) {
+ await this.saveIdentityInUserConfigurationFile(
+ blockchainModuleManager.getIdentity(blockchain),
+ blockchain,
+ );
+ }
+ }
+ this.logger.info(
+ `${blockchain} blockchain identity is ${blockchainModuleManager.getIdentity(
+ blockchain,
+ )}`,
+ );
+ } catch (error) {
+ this.logger.warn(
+ `Unable to create ${blockchain} blockchain profile. Removing implementation.`,
+ );
+ blockchainModuleManager.removeImplementation(blockchain);
}
- }
-
- const rankingService = this.container.resolve('rankingService');
- await rankingService.initialize();
- this.logger.info(`Network module: ${networkService.getName()} implementation`);
- } catch (e) {
- this.logger.error({
- msg: `Network module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.NETWORK_INITIALIZATION_ERROR,
});
- }
- }
- async initializeValidationModule() {
- try {
- const validationService = this.container.resolve('validationService');
+ await Promise.all(createProfilesPromises);
- await validationService.initialize();
- this.logger.info(`Validation module: ${validationService.getName()} implementation`);
- } catch (e) {
- this.logger.error({
- msg: `Validation module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.VALIDATION_INITIALIZATION_ERROR,
- });
+ if (!blockchainModuleManager.getImplementationsNames().length) {
+ this.logger.info(`Unable to create blockchain profiles. OT-node shutting down...`);
+ process.exit(1);
}
}
- async initializeBlockchainModule() {
- try {
- const blockchainService = this.container.resolve('blockchainService');
+ async saveNetworkModulePeerIdAndPrivKey() {
+ const networkModuleManager = this.container.resolve('networkModuleManager');
+ const privateKey = networkModuleManager.getPrivateKey();
- await blockchainService.initialize();
- this.logger.info(`Blockchain module: ${blockchainService.getName()} implementation`);
- } catch (e) {
- this.logger.error({
- msg: `Blockchain module initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.BLOCKCHAIN_INITIALIZATION_ERROR,
- });
+ if (process.env.NODE_ENV !== 'development' && process.env.NODE_ENV !== 'test') {
+ await this.savePrivateKeyAndPeerIdInUserConfigurationFile(privateKey);
}
}
@@ -211,37 +191,25 @@ class OTNode {
commandExecutor.replay();
await commandExecutor.start();
} catch (e) {
- this.logger.error({
- msg: `Command executor initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.COMMAND_EXECUTOR_INITIALIZATION_ERROR,
- });
- }
- }
-
- async initializeRpcModule() {
- try {
- const rpcController = this.container.resolve('rpcController');
- await rpcController.initialize();
- } catch (e) {
- this.logger.error({
- msg: `RPC service initialization failed. Error message: ${e.message}`,
- Event_name: constants.ERROR_TYPE.RPC_INITIALIZATION_ERROR,
- });
+ this.logger.error(
+ `Command executor initialization failed. Error message: ${e.message}`,
+ );
}
}
- async initializeTelemetryHubModule() {
- try {
- const telemetryHubModuleManager = this.container.resolve('telemetryHubModuleManager');
- if (telemetryHubModuleManager.initialize(this.config.telemetryHub, this.logger)) {
- this.logger.info(
- `Telemetry hub module initialized successfully, using ${telemetryHubModuleManager.config.telemetryHub.packages} package(s)`,
+ async initializeTelemetryInjectionService() {
+ if (this.config.telemetry.enabled) {
+ try {
+ const telemetryHubModuleManager = this.container.resolve(
+ 'telemetryInjectionService',
+ );
+ telemetryHubModuleManager.initialize();
+ this.logger.info('Telemetry Injection Service initialized successfully');
+ } catch (e) {
+ this.logger.error(
+ `Telemetry hub module initialization failed. Error message: ${e.message}`,
);
}
- } catch (e) {
- this.logger.error(
- `Telemetry hub module initialization failed. Error message: ${e.message}`,
- );
}
}
@@ -255,11 +223,64 @@ class OTNode {
}
}
- savePrivateKeyInUserConfigurationFile(privateKey) {
+ async savePrivateKeyAndPeerIdInUserConfigurationFile(privateKey) {
const configurationFilePath = path.join(appRootPath.path, '..', this.config.configFilename);
- const configFile = JSON.parse(fs.readFileSync(configurationFilePath));
- configFile.network.privateKey = privateKey;
- fs.writeFileSync(configurationFilePath, JSON.stringify(configFile, null, 2));
+ const configFile = JSON.parse(await fs.promises.readFile(configurationFilePath));
+
+ if (!configFile.modules.network) {
+ configFile.modules.network = {
+ implementation: {
+ 'libp2p-service': {
+ config: {},
+ },
+ },
+ };
+ } else if (!configFile.modules.network.implementation) {
+ configFile.modules.network.implementation = {
+ 'libp2p-service': {
+ config: {},
+ },
+ };
+ } else if (!configFile.modules.network.implementation['libp2p-service']) {
+ configFile.modules.network.implementation['libp2p-service'] = {
+ config: {},
+ };
+ }
+ if (!configFile.modules.network.implementation['libp2p-service'].config.privateKey) {
+ configFile.modules.network.implementation['libp2p-service'].config.privateKey =
+ privateKey;
+ await fs.promises.writeFile(configurationFilePath, JSON.stringify(configFile, null, 2));
+ }
+ }
+
+ async saveIdentityInUserConfigurationFile(identity, blockchain) {
+ const configurationFilePath = path.join(appRootPath.path, '..', this.config.configFilename);
+ const configFile = JSON.parse(await fs.promises.readFile(configurationFilePath));
+ if (
+ configFile.modules.blockchain &&
+ configFile.modules.blockchain.implementation &&
+ configFile.modules.blockchain.implementation[blockchain] &&
+ configFile.modules.blockchain.implementation[blockchain].config
+ ) {
+ if (!configFile.modules.blockchain.implementation[blockchain].config.identity) {
+ configFile.modules.blockchain.implementation[blockchain].config.identity = identity;
+ await fs.promises.writeFile(
+ configurationFilePath,
+ JSON.stringify(configFile, null, 2),
+ );
+ }
+ }
+ }
+
+ async removeUpdateFile() {
+ const fileService = new FileService({ config: this.config, logger: this.logger });
+ const updateFilePath = fileService.getUpdateFilePath();
+ if (await fileService.fileExists(updateFilePath)) {
+ this.config.otNodeUpdated = true;
+ await fileService.removeFile(updateFilePath).catch((error) => {
+ this.logger.warn(`Unable to remove update file. Error: ${error}`);
+ });
+ }
}
stop() {
diff --git a/package-lock.json b/package-lock.json
index d69c53278..8004f3a04 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,23 +1,30 @@
{
"name": "origintrail_node",
- "version": "6.0.0-beta.1.37",
+ "version": "6.0.0-beta.2.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "origintrail_node",
- "version": "6.0.0-beta.1.37",
+ "version": "6.0.0-beta.2.0",
"license": "ISC",
"dependencies": {
"@comunica/query-sparql": "^2.2.1",
+ "@polkadot/api": "^9.2.1",
+ "@polkadot/keyring": "^10.1.4",
"app-root-path": "^3.0.0",
+ "assertion-tools": "^1.0.7",
+ "async": "^3.2.4",
+ "async-mutex": "^0.3.2",
"awilix": "^5.0.1",
"axios": "^0.24.0",
"big-number": "^2.0.0",
"bl": "^5.0.0",
- "bn": "^1.0.5",
+ "bn.js": "^5.2.1",
+ "cors": "^2.8.5",
"crypto-js": "^4.1.1",
"deep-extend": "^0.6.0",
+ "dkg-evm-module": "^1.0.1",
"dotenv": "^10.0.0",
"elliptic": "^6.5.4",
"express": "^4.17.1",
@@ -28,22 +35,29 @@
"fast-sort": "^3.1.1",
"fastq": "^1.13.0",
"fs-extra": "^10.0.0",
- "graphdb": "^2.0.0",
+ "graphdb": "^2.0.2",
+ "ip": "^1.1.8",
"it-concat": "^2.0.0",
"it-length-prefixed": "^5.0.3",
+ "it-map": "^1.0.6",
"it-pipe": "^1.1.0",
"js-sha3": "^0.8.0",
"json-2-csv": "^3.14.4",
"json-stable-stringify": "^1.0.1",
"jsonld": "^5.2.0",
+ "jsonschema": "^1.4.1",
+ "jsonwebtoken": "^8.5.1",
+ "keccak256": "^1.0.6",
"libp2p": "^0.32.4",
"libp2p-bootstrap": "^0.13.0",
"libp2p-kad-dht": "^0.24.2",
- "libp2p-mplex": "^0.10.4",
+ "libp2p-mplex": "^0.10.7",
"libp2p-noise": "^4.0.0",
"libp2p-record": "^0.10.5",
"libp2p-tcp": "^0.17.2",
"merkle-tools": "^1.4.1",
+ "merkletreejs": "^0.2.32",
+ "ms": "^2.1.3",
"multiformats": "^9.4.7",
"mysql2": "^2.3.3",
"n3": "^1.12.2",
@@ -60,10 +74,10 @@
"sequelize": "^6.9.0",
"sequelize-cli": "^6.3.0",
"simple-git": "^3.6.0",
- "sleep-async": "^1.0.5",
"split": "^1.0.1",
"streaming-iterables": "^6.0.0",
"toobusy-js": "^0.5.1",
+ "uint8arrays": "^3.0.0",
"underscore": "^1.13.1",
"unzipper": "^0.10.11",
"uuid": "^8.3.2",
@@ -76,6 +90,11 @@
"@babel/core": "^7.15.5",
"@babel/eslint-parser": "^7.16.5",
"@cucumber/cucumber": "^8.0.0-rc.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/wallet": "^5.6.2",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
"chai": "^4.3.6",
"chai-as-promised": "^7.1.1",
"dkg.js": "^6.0.0-beta.2.7",
@@ -93,6 +112,7 @@
"openzeppelin-solidity": "3.4.2",
"prettier": "^2.6.2",
"request": "^2.88.2",
+ "sinon": "^14.0.0",
"slugify": "^1.6.5",
"solc": "0.7.6"
},
@@ -110,10 +130,9 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
- "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
- "dev": true,
+ "version": "7.18.8",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
+ "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==",
"engines": {
"node": ">=6.9.0"
}
@@ -122,7 +141,6 @@
"version": "7.15.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
"integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.15.4",
@@ -152,7 +170,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"dependencies": {
"@babel/highlight": "^7.14.5"
},
@@ -164,7 +181,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
"dependencies": {
"minimist": "^1.2.5"
},
@@ -179,7 +195,6 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -215,7 +230,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
"integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4",
"jsesc": "^2.5.1",
@@ -226,14 +240,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
"dependencies": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
},
"engines": {
@@ -247,7 +260,30 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
+ "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
+ "dependencies": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.4.0-0"
+ }
+ },
+ "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"bin": {
"semver": "bin/semver.js"
}
@@ -256,7 +292,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
"integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
- "dev": true,
"dependencies": {
"@babel/helper-get-function-arity": "^7.15.4",
"@babel/template": "^7.15.4",
@@ -270,7 +305,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
"integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -282,7 +316,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
"integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -294,7 +327,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
"integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -303,12 +335,11 @@
}
},
"node_modules/@babel/helper-module-imports": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
- "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
- "dev": true,
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
"dependencies": {
- "@babel/types": "^7.15.4"
+ "@babel/types": "^7.18.6"
},
"engines": {
"node": ">=6.9.0"
@@ -318,7 +349,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
"integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
- "dev": true,
"dependencies": {
"@babel/helper-module-imports": "^7.15.4",
"@babel/helper-replace-supers": "^7.15.4",
@@ -337,7 +367,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
"integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -345,11 +374,18 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-replace-supers": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
"integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
- "dev": true,
"dependencies": {
"@babel/helper-member-expression-to-functions": "^7.15.4",
"@babel/helper-optimise-call-expression": "^7.15.4",
@@ -364,7 +400,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
"integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -376,7 +411,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
"integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.15.4"
},
@@ -384,19 +418,26 @@
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
+ "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==",
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
- "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
- "dev": true,
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==",
"engines": {
"node": ">=6.9.0"
}
@@ -405,7 +446,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
"integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
- "dev": true,
"dependencies": {
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
@@ -453,7 +493,6 @@
"version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
"integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
- "dev": true,
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -461,12 +500,37 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/plugin-transform-runtime": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
+ "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-transform-runtime/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
"node_modules/@babel/runtime": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
- "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
- "dev": true,
- "peer": true,
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
+ "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -492,7 +556,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
"integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.14.5",
"@babel/parser": "^7.15.4",
@@ -506,7 +569,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"dependencies": {
"@babel/highlight": "^7.14.5"
},
@@ -518,7 +580,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
"integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
- "dev": true,
"dependencies": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.15.4",
@@ -538,7 +599,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"dependencies": {
"@babel/highlight": "^7.14.5"
},
@@ -550,18 +610,17 @@
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/@babel/types": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
- "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
- "dev": true,
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz",
+ "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==",
"dependencies": {
- "@babel/helper-validator-identifier": "^7.14.9",
+ "@babel/helper-string-parser": "^7.18.10",
+ "@babel/helper-validator-identifier": "^7.18.6",
"to-fast-properties": "^2.0.0"
},
"engines": {
@@ -2893,43 +2952,53 @@
}
},
"node_modules/@ethereumjs/common": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz",
- "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==",
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
+ "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
"dependencies": {
"crc-32": "^1.2.0",
- "ethereumjs-util": "^7.1.1"
+ "ethereumjs-util": "^7.1.5"
}
},
"node_modules/@ethereumjs/tx": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz",
- "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
+ "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
"dependencies": {
- "@ethereumjs/common": "^2.5.0",
- "ethereumjs-util": "^7.1.2"
+ "@ethereumjs/common": "^2.6.4",
+ "ethereumjs-util": "^7.1.5"
}
},
"node_modules/@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "version": "5.6.4",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz",
+ "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
"dependencies": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@ethersproject/abstract-provider": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz",
- "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz",
+ "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==",
"funding": [
{
"type": "individual",
@@ -2941,19 +3010,19 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/networks": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/transactions": "^5.4.0",
- "@ethersproject/web": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1"
}
},
"node_modules/@ethersproject/abstract-signer": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz",
- "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz",
+ "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==",
"funding": [
{
"type": "individual",
@@ -2965,17 +3034,17 @@
}
],
"dependencies": {
- "@ethersproject/abstract-provider": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0"
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0"
}
},
"node_modules/@ethersproject/address": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz",
- "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz",
+ "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==",
"funding": [
{
"type": "individual",
@@ -2987,17 +3056,17 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/rlp": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/rlp": "^5.6.1"
}
},
"node_modules/@ethersproject/base64": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz",
- "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz",
+ "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==",
"funding": [
{
"type": "individual",
@@ -3009,13 +3078,33 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1"
+ }
+ },
+ "node_modules/@ethersproject/basex": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz",
+ "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0"
}
},
"node_modules/@ethersproject/bignumber": {
- "version": "5.4.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz",
- "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
+ "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
"funding": [
{
"type": "individual",
@@ -3027,15 +3116,15 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "bn.js": "^4.11.9"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "bn.js": "^5.2.1"
}
},
"node_modules/@ethersproject/bytes": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz",
- "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz",
+ "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==",
"funding": [
{
"type": "individual",
@@ -3047,13 +3136,13 @@
}
],
"dependencies": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/constants": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz",
- "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
+ "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
"funding": [
{
"type": "individual",
@@ -3065,13 +3154,13 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2"
}
},
"node_modules/@ethersproject/hash": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz",
- "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz",
+ "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==",
"funding": [
{
"type": "individual",
@@ -3083,20 +3172,87 @@
}
],
"dependencies": {
- "@ethersproject/abstract-signer": "^5.4.0",
- "@ethersproject/address": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/strings": "^5.4.0"
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
}
},
+ "node_modules/@ethersproject/hdnode": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz",
+ "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
+ }
+ },
+ "node_modules/@ethersproject/json-wallets": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz",
+ "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "aes-js": "3.0.0",
+ "scrypt-js": "3.0.1"
+ }
+ },
+ "node_modules/@ethersproject/json-wallets/node_modules/aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "dev": true
+ },
"node_modules/@ethersproject/keccak256": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz",
- "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz",
+ "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==",
"funding": [
{
"type": "individual",
@@ -3108,19 +3264,14 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0",
- "js-sha3": "0.5.7"
+ "@ethersproject/bytes": "^5.6.1",
+ "js-sha3": "0.8.0"
}
},
- "node_modules/@ethersproject/keccak256/node_modules/js-sha3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
- },
"node_modules/@ethersproject/logger": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz",
- "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz",
+ "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg==",
"funding": [
{
"type": "individual",
@@ -3133,9 +3284,28 @@
]
},
"node_modules/@ethersproject/networks": {
- "version": "5.4.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz",
- "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==",
+ "version": "5.6.4",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz",
+ "integrity": "sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/logger": "^5.6.0"
+ }
+ },
+ "node_modules/@ethersproject/pbkdf2": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz",
+ "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==",
+ "dev": true,
"funding": [
{
"type": "individual",
@@ -3147,13 +3317,14 @@
}
],
"dependencies": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1"
}
},
"node_modules/@ethersproject/properties": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz",
- "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz",
+ "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==",
"funding": [
{
"type": "individual",
@@ -3165,13 +3336,53 @@
}
],
"dependencies": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/logger": "^5.6.0"
+ }
+ },
+ "node_modules/@ethersproject/random": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz",
+ "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/rlp": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz",
- "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz",
+ "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
+ }
+ },
+ "node_modules/@ethersproject/sha2": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz",
+ "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==",
+ "dev": true,
"funding": [
{
"type": "individual",
@@ -3183,14 +3394,15 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "hash.js": "1.1.7"
}
},
"node_modules/@ethersproject/signing-key": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz",
- "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz",
+ "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==",
"funding": [
{
"type": "individual",
@@ -3202,18 +3414,18 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "bn.js": "^4.11.9",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "bn.js": "^5.2.1",
"elliptic": "6.5.4",
"hash.js": "1.1.7"
}
},
"node_modules/@ethersproject/strings": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz",
- "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz",
+ "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==",
"funding": [
{
"type": "individual",
@@ -3225,15 +3437,42 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/constants": "^5.4.0",
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/transactions": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz",
- "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz",
+ "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2"
+ }
+ },
+ "node_modules/@ethersproject/wallet": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz",
+ "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==",
+ "dev": true,
"funding": [
{
"type": "individual",
@@ -3245,21 +3484,27 @@
}
],
"dependencies": {
- "@ethersproject/address": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/constants": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/rlp": "^5.4.0",
- "@ethersproject/signing-key": "^5.4.0"
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/json-wallets": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"node_modules/@ethersproject/web": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz",
- "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz",
+ "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==",
"funding": [
{
"type": "individual",
@@ -3271,11 +3516,34 @@
}
],
"dependencies": {
- "@ethersproject/base64": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/strings": "^5.4.0"
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
+ }
+ },
+ "node_modules/@ethersproject/wordlists": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz",
+ "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2"
+ },
+ {
+ "type": "individual",
+ "url": "https://www.buymeacoffee.com/ricmoo"
+ }
+ ],
+ "dependencies": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@humanwhocodes/config-array": {
@@ -3429,6 +3697,558 @@
"node": ">=10.0.0"
}
},
+ "node_modules/@noble/hashes": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz",
+ "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@noble/secp256k1": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz",
+ "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
+ "node_modules/@openzeppelin/contracts": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz",
+ "integrity": "sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw=="
+ },
+ "node_modules/@polkadot/api": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.2.1.tgz",
+ "integrity": "sha512-5cg47N2BX6PbABYrfJIgA78glqLutN1M88y67UWulj17rM6cYmmi26tlb209zOhNZ7cjBhQDPHN/pbdUiL4zgg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api-augment": "9.2.1",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/api-derive": "9.2.1",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/rpc-provider": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/types-known": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "eventemitter3": "^4.0.7",
+ "rxjs": "^7.5.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/api-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.2.1.tgz",
+ "integrity": "sha512-QetNP5gBtj6DfyJ//5cDNeaEKnd3lsyas9GDw1MqQCxxT0k+6UpLR5JTzeTnTKYSUz7IMIasU/tpunf/2rUuSQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/api-base": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.2.1.tgz",
+ "integrity": "sha512-slc/NzeON1ZZ97/HaWOJF6j7rWn5yHb+q1BCNpWGZ1MLuKW3R4F8Af0AAIBgvCS223NQ4sHaLUoMAcaPdRcbHg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "rxjs": "^7.5.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/api-derive": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.2.1.tgz",
+ "integrity": "sha512-Vdr6eNaybf22whoHu5fsQe0SsjFFZkvV9GZVczf4gf+lxmZ0GSj634QdBqV/j4l/mvgWgiUqT3b9daTRm5oxiA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api": "9.2.1",
+ "@polkadot/api-augment": "9.2.1",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "rxjs": "^7.5.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/keyring": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.1.4.tgz",
+ "integrity": "sha512-dCMejp5heZwKSFeO+1vCHFoo1h1KgNvu4AaKQdNxpyr/3eCINrCFI74/qT9XGypblxd61caOpJcMl8B1R/UWFA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "10.1.4",
+ "@polkadot/util-crypto": "10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "10.1.4",
+ "@polkadot/util-crypto": "10.1.4"
+ }
+ },
+ "node_modules/@polkadot/networks": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.1.4.tgz",
+ "integrity": "sha512-5wMwqD+DeVMh29OZZBVkA4DQE9EBsUj5FjmUS2CloA8RzE6SV0qL34zhTwOdq95KJV1OoDbp9aGjCBqhEuozKw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "10.1.4",
+ "@substrate/ss58-registry": "^1.25.0"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/rpc-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.2.1.tgz",
+ "integrity": "sha512-ABOLmQPergZJVZB/8YOr0SO/EjZtV4ZzhhgBr/nkX0hLULnjOCAxfFOXqXr7cpa4wjCnIBGkOG3fwVZL2v14FA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/rpc-core": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.2.1.tgz",
+ "integrity": "sha512-4Ns3dbxVESEgjlf1CgpdTTWtRvTdizpJ6NfelbRc8iX7Kg6RMbNeKtPmyRGTzwwMPAoDvNTGSpWmVcN9NscmTQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/rpc-provider": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "rxjs": "^7.5.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/rpc-provider": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.2.1.tgz",
+ "integrity": "sha512-tz8dng70BLJfnORwakw412p3d0OQzaeCLybNo8lxiORoZy37xDTNYOrWXGejgc0sePNdWi8ZTLYy3pk2BGU3Vg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-support": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "@polkadot/x-fetch": "^10.1.4",
+ "@polkadot/x-global": "^10.1.4",
+ "@polkadot/x-ws": "^10.1.4",
+ "@substrate/connect": "0.7.10",
+ "eventemitter3": "^4.0.7",
+ "mock-socket": "^9.1.5",
+ "nock": "^13.2.9"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.2.1.tgz",
+ "integrity": "sha512-Z07fIxLVLQXX1386NVI6ov+5jWo4bUX8m+89tnewuqxvVRUhZI8+s350srFZY0B2FjiA73QsE+/EwGFOHtoZfw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "rxjs": "^7.5.6"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.2.1.tgz",
+ "integrity": "sha512-NfQxDreOSkD23b8WhZDJDDxYjr7a1S3HUMr8FIg+z6tvPfqTtr4+l78kUFWdSflK+nId+m4h38PuJS9JKEG6uw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types-codec": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.2.1.tgz",
+ "integrity": "sha512-ChzDKu7Ih1UvDoRyR10Fzu6dnUQcHtoB1XzMNd1oHOv46XUNKpen1JD5uRggoCSYJ38ocAjWnmSgj/VJ+pI8YQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/x-bigint": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types-create": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.2.1.tgz",
+ "integrity": "sha512-ymAiWKjyGJzgLoOamR6EYrFxLhIMTOF2WWUWKO3/mE3puYqsDEtH5rcU78R/lWEVDxGXSaNqYmjhuEyujpWAUw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types-known": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.2.1.tgz",
+ "integrity": "sha512-q0WOsV3R8kxdsMrlmUYvE+XQ8AwxNCe/PaAufA9ArPtlvumc1K6gbQ16Ik2mHKtuZBHO2EQcwdXl9Yr+pijRzw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/networks": "^10.1.4",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/types-support": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.2.1.tgz",
+ "integrity": "sha512-tphkezOtwSW8wnUCr6Pu/sx+IgtzD4c1YC70ans431ZozbxRaT/pcjir4N3Zg6PQJR+zNwHURKHyeOGpuDCg0g==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "^10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/util": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.1.4.tgz",
+ "integrity": "sha512-MHz1UxYXuV+XxPl+GR++yOUE0OCiVd+eJBqLgpjpVJNRkudbAmfGAbB2TNR0+76M0fevIeHj4DGEd0gY6vqKLw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-bigint": "10.1.4",
+ "@polkadot/x-global": "10.1.4",
+ "@polkadot/x-textdecoder": "10.1.4",
+ "@polkadot/x-textencoder": "10.1.4",
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.2.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/util-crypto": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.1.4.tgz",
+ "integrity": "sha512-6rdUwCdbwmQ0PBWBNYh55RsXAcFjhco/TGLuM7GJ7YufrN9qqv1sr40HlneLbtpiZnfukZ3q/qOpj0h7Hrw2JQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@noble/hashes": "1.1.2",
+ "@noble/secp256k1": "1.6.3",
+ "@polkadot/networks": "10.1.4",
+ "@polkadot/util": "10.1.4",
+ "@polkadot/wasm-crypto": "^6.3.1",
+ "@polkadot/x-bigint": "10.1.4",
+ "@polkadot/x-randomvalues": "10.1.4",
+ "@scure/base": "1.1.1",
+ "ed2curve": "^0.3.0",
+ "tweetnacl": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "10.1.4"
+ }
+ },
+ "node_modules/@polkadot/util-crypto/node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ },
+ "node_modules/@polkadot/wasm-bridge": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.3.1.tgz",
+ "integrity": "sha512-1TYkHsb9AEFhU9uZj3biEnN2yKQNzdrwSjiTvfCYnt97pnEkKsZI6cku+YPZQv5w/x9CQa5Yua9e2DVVZSivGA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/@polkadot/wasm-crypto": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.3.1.tgz",
+ "integrity": "sha512-OO8h0qeVkqp4xYZaRVl4iuWOEtq282pNBHDKb6SOJuI2g59eWGcKh4EQU9Me2VP6qzojIqptrkrVt7KQXC68gA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-bridge": "6.3.1",
+ "@polkadot/wasm-crypto-asmjs": "6.3.1",
+ "@polkadot/wasm-crypto-init": "6.3.1",
+ "@polkadot/wasm-crypto-wasm": "6.3.1",
+ "@polkadot/wasm-util": "6.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/@polkadot/wasm-crypto-asmjs": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.3.1.tgz",
+ "integrity": "sha512-zbombRfA5v/mUWQQhgg2YwaxhRmxRIrvskw65x+lruax3b6xPBFDs7yplopiJU3r8h2pTgQvX/DUksvqz2TCRQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/@polkadot/wasm-crypto-init": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.3.1.tgz",
+ "integrity": "sha512-9yaUBcu+snwjJLmPPGl3cyGRQ1afyFGm16qzTM0sgG/ZCfUlK4uk8KWZe+sBUKgoxb2oXY7Y4WklKgQI1YBdfw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-bridge": "6.3.1",
+ "@polkadot/wasm-crypto-asmjs": "6.3.1",
+ "@polkadot/wasm-crypto-wasm": "6.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*",
+ "@polkadot/x-randomvalues": "*"
+ }
+ },
+ "node_modules/@polkadot/wasm-crypto-wasm": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.3.1.tgz",
+ "integrity": "sha512-idSlzKGVzCfeCMRHsacRvqwojSaTadFxL/Dbls4z1thvfa3U9Ku0d2qVtlwg7Hj+tYWDiuP8Kygs+6bQwfs0XA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-util": "6.3.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/@polkadot/wasm-util": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.3.1.tgz",
+ "integrity": "sha512-12oAv5J7Yoc9m6jixrSaQCxpOkWOyzHx3DMC8qmLjRiwdBWxqLmImOVRVnFsbaxqSbhBIHRuJphVxWE+GZETDg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "@polkadot/util": "*"
+ }
+ },
+ "node_modules/@polkadot/x-bigint": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.1.4.tgz",
+ "integrity": "sha512-qgLetTukFhkxNxNcUWMmnrfE9bp4TNbrqNoVBVH7wqSuEVpDPITBXsQ/78LbaaZGWD80Ew0wGxcZ/rqX+dLVUA==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-fetch": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.1.4.tgz",
+ "integrity": "sha512-hVhLpOvx+ys6klkqWJnINi9FU/JcDnc+6cyU9fa+Dum3mqO1XnngOYDO9mpf5HODIwrFNFmohll9diRP+TW0yQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4",
+ "@types/node-fetch": "^2.6.2",
+ "node-fetch": "^3.2.10"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-fetch/node_modules/data-uri-to-buffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
+ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/@polkadot/x-fetch/node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
+ "engines": {
+ "node": "^12.20 || >= 14.13"
+ }
+ },
+ "node_modules/@polkadot/x-fetch/node_modules/node-fetch": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz",
+ "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==",
+ "dependencies": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
+ }
+ },
+ "node_modules/@polkadot/x-global": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.1.4.tgz",
+ "integrity": "sha512-67f53H872wHvmjmL96DvhC3dG7gKRG1ghEbHXeFIGwkix+9zGEMV9krYW1+OAvGAuCQZqUIUGiJ7lad4Zjb7wQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-randomvalues": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.1.4.tgz",
+ "integrity": "sha512-sfYz3GmyG739anj07Y+8PUX+95upO1zlsADAEfK1w1mMpTw97xEoMZf66CduAQOe43gEwQXc/JuKq794C/Hr7Q==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-textdecoder": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.1.4.tgz",
+ "integrity": "sha512-B8XcAmJLnuppSr4RUNPevh5MH3tWZBwBR0wUsSdIyiGXuncgnkj9jmpbGLgV1tSn+BGxX3SNsRho3/4CNmndWQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-textencoder": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.1.4.tgz",
+ "integrity": "sha512-vDpo0rVV4jBmr0L2tCZPZzxmzV2vZhpH1Dw9H7MpmZSPePz4ZF+o4RBJz/ocwQh3+1qV1SKQm7+fj4lPwUZdEw==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/@polkadot/x-ws": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.1.4.tgz",
+ "integrity": "sha512-hi7hBRRCLlHgqVW2p5TkoJuTxV7sVprl+aAnmcIpPU4J8Ai6PKQvXR+fLK01T8moBYmH5ztHrBWvY/XRzmQ8Vg==",
+ "dependencies": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4",
+ "@types/websocket": "^1.0.5",
+ "websocket": "^1.0.34"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
"node_modules/@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -3491,14 +4311,122 @@
"@types/node": "*"
}
},
+ "node_modules/@redux-saga/core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.0.tgz",
+ "integrity": "sha512-9n8PeOJT2gyVutH5LUKbCiPFkUZLOM4LWtt5zhbXJa77gzXj9LuEqDj1CVOsfPM0NcHVEhVUQ/Cr++ZZfCNjFg==",
+ "dependencies": {
+ "@babel/runtime": "^7.6.3",
+ "@redux-saga/deferred": "^1.2.0",
+ "@redux-saga/delay-p": "^1.2.0",
+ "@redux-saga/is": "^1.1.2",
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.2.0",
+ "redux": "^4.0.4",
+ "typescript-tuple": "^2.2.1"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/redux-saga"
+ }
+ },
+ "node_modules/@redux-saga/core/node_modules/redux": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz",
+ "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==",
+ "dependencies": {
+ "@babel/runtime": "^7.9.2"
+ }
+ },
+ "node_modules/@redux-saga/deferred": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.0.tgz",
+ "integrity": "sha512-PJrcqMPN/WdmNyJvI1xwPnktaqEd2F3Lc79bRpjupX5zDO+RgLTekuoWv+cgyfGBVW2iaMTEYhUVlZqvCkGAIg=="
+ },
+ "node_modules/@redux-saga/delay-p": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.0.tgz",
+ "integrity": "sha512-neR2QbTZbwNkQ3/LVdltEdfLVyoxmP7OcUys68KgieCuaWBDpfDeXqxkTRz/biCjYqJGezRDgSfTu6wx/44Lfg==",
+ "dependencies": {
+ "@redux-saga/symbols": "^1.1.2"
+ }
+ },
+ "node_modules/@redux-saga/is": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.2.tgz",
+ "integrity": "sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w==",
+ "dependencies": {
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.1.0"
+ }
+ },
+ "node_modules/@redux-saga/symbols": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.2.tgz",
+ "integrity": "sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ=="
+ },
+ "node_modules/@redux-saga/types": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.0.tgz",
+ "integrity": "sha512-SCZVqXX4l3WwVM58eXFtXabJdxGQKY7hvSToV+xivtPwmutCbhOhgJ53JwKGX3HCBwEkzn4t9WItBQKbzNNxyw=="
+ },
+ "node_modules/@scure/base": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz",
+ "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
"node_modules/@sindresorhus/is": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==",
"engines": {
- "node": ">=6"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
+ "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "node_modules/@sinonjs/samsam": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz",
+ "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.6.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
}
},
+ "node_modules/@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "dev": true
+ },
"node_modules/@stablelib/aead": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz",
@@ -3625,1346 +4553,1573 @@
"@stablelib/wipe": "^1.0.1"
}
},
+ "node_modules/@substrate/connect": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.10.tgz",
+ "integrity": "sha512-WNdW18e0I696/AQjrAXdMD9W8YaKLTcPr2Cu8scSwiUT40in84KEzi+g+P367cE2etAc+Dvu8vNDEQTbUPNqEg==",
+ "dependencies": {
+ "@substrate/connect-extension-protocol": "^1.0.1",
+ "@substrate/smoldot-light": "0.6.27",
+ "eventemitter3": "^4.0.7"
+ }
+ },
+ "node_modules/@substrate/connect-extension-protocol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz",
+ "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg=="
+ },
+ "node_modules/@substrate/smoldot-light": {
+ "version": "0.6.27",
+ "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.6.27.tgz",
+ "integrity": "sha512-Wy3fbyfZqR3HLynuxeBkUunZsrbqpsmFN+D0/8cVIHZbO7WDwJsmCUc32yO5r+v6s/T97L7FOJHEyMWmRfnKAQ==",
+ "dependencies": {
+ "pako": "^2.0.4",
+ "websocket": "^1.0.32"
+ }
+ },
+ "node_modules/@substrate/smoldot-light/node_modules/pako": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+ "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
+ },
+ "node_modules/@substrate/ss58-registry": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.25.0.tgz",
+ "integrity": "sha512-LmCH4QJRdHaeLsLTPSgJaXguMoIW+Ig9fA9LRPpeya9HefVAJ7gZuUYinldv+QmX7evNm5CL0rspNUS8l1DvXg=="
+ },
"node_modules/@szmarczak/http-timer": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
"dependencies": {
- "defer-to-connect": "^1.0.1"
+ "defer-to-connect": "^2.0.1"
},
"engines": {
- "node": ">=6"
+ "node": ">=14.16"
}
},
- "node_modules/@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "node_modules/@truffle/abi-utils": {
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.16.tgz",
+ "integrity": "sha512-FCDANbJM5UJ0Mm61Z9MmQ3DVnMCCmMgOSFvGDORyYqHiXdS6uK0n77pN5tuUUCles8YIpgnCdijMWs8HoaRSMw==",
"dependencies": {
- "@types/node": "*"
+ "change-case": "3.0.2",
+ "faker": "5.5.3",
+ "fast-check": "3.1.1"
}
},
- "node_modules/@types/concat-stream": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
- "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
- "dev": true,
+ "node_modules/@truffle/code-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-2.0.0.tgz",
+ "integrity": "sha512-qvx3MiBbnCgiNeKFnhQ7wpOQMkXz9ca5E72WZAFIxRg+0wYAR+u7e+DXQe88xTjthC2OP3xDNSeYcb57NIU8Pw==",
"dependencies": {
- "@types/node": "*"
+ "cbor": "^5.2.0"
}
},
- "node_modules/@types/form-data": {
- "version": "0.0.33",
- "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
- "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
- "dev": true,
+ "node_modules/@truffle/codec": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.1.tgz",
+ "integrity": "sha512-ULvtciwbdUANe7VNsPCAIWSrxm0CFu145VVVxJ+yE1xHY9TiLKHOf+CBH2sMW3mVkbt5HwVUF5DGm+uXngK19A==",
"dependencies": {
- "@types/node": "*"
+ "@truffle/abi-utils": "^0.2.16",
+ "@truffle/compile-common": "^0.7.33",
+ "big.js": "^6.0.3",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.2.0",
+ "debug": "^4.3.1",
+ "lodash": "^4.17.21",
+ "semver": "7.3.7",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.7.4"
}
},
- "node_modules/@types/http-link-header": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.3.tgz",
- "integrity": "sha512-y8HkoD/vyid+5MrJ3aas0FvU3/BVBGcyG9kgxL0Zn4JwstA8CglFPnrR0RuzOjRCXwqzL5uxWC2IO7Ub0rMU2A==",
- "dependencies": {
- "@types/node": "*"
+ "node_modules/@truffle/codec/node_modules/big.js": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz",
+ "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ==",
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/bigjs"
}
},
- "node_modules/@types/json-stable-stringify": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz",
- "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw=="
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
- "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/codec/node_modules/web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
+ "dependencies": {
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
},
- "node_modules/@types/long": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
- "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
+ "node_modules/@truffle/compile-common": {
+ "version": "0.7.33",
+ "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.33.tgz",
+ "integrity": "sha512-LvZhDheDGqb+TScSRSYAFZQBRFEn+2ic/gtJIJXB2Rm1U6cS5GLdvWrEdPPIAwP+xt0xZ4ySI4mw2wBL8MUSRg==",
+ "dependencies": {
+ "@truffle/error": "^0.1.0",
+ "colors": "1.4.0"
+ }
},
- "node_modules/@types/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
+ "node_modules/@truffle/db-loader": {
+ "version": "0.1.28",
+ "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.1.28.tgz",
+ "integrity": "sha512-d12zo7iPFCL7tpC0FD8eEianbyBkptN3rj1ySrcneKnDiQCfZlB13rIMyzMWUeYsSmOhL5BaR9CbztVAhLnnOA==",
+ "optionalDependencies": {
+ "@truffle/db": "^1.0.18"
+ }
},
- "node_modules/@types/minimatch": {
- "version": "3.0.5",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
- "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
+ "node_modules/@truffle/debugger": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.4.tgz",
+ "integrity": "sha512-5xmmApISc8Bm84kLS9BlIB5cA4pQuVze+l5f7UptsvT2bdEdaxIdPBUrTcUcVYkqZzpZVGcFMdIF0Je+Ju3eCw==",
+ "dependencies": {
+ "@truffle/abi-utils": "^0.2.16",
+ "@truffle/codec": "^0.14.1",
+ "@truffle/source-map-utils": "^1.3.91",
+ "bn.js": "^5.1.3",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.1",
+ "json-stable-stringify": "^1.0.1",
+ "lodash": "^4.17.21",
+ "redux": "^3.7.2",
+ "redux-saga": "1.0.0",
+ "reselect-tree": "^1.3.7",
+ "semver": "7.3.7",
+ "web3": "1.7.4",
+ "web3-eth-abi": "1.7.4"
+ }
},
- "node_modules/@types/minimist": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
- "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
+ "node_modules/@truffle/debugger/node_modules/@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/@types/n3": {
- "version": "1.10.4",
- "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.10.4.tgz",
- "integrity": "sha512-FfRTwcbXcScVHuAjIASveRWL6Fi6fPALl1Ge8tMESYLqU7R42LJvtdBpUi+f9YK0oQPqIN+zFFgMDFJfLMx0bg==",
+ "node_modules/@truffle/debugger/node_modules/@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
"dependencies": {
- "@types/node": "*",
- "rdf-js": "^4.0.2"
+ "defer-to-connect": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/@types/node": {
- "version": "16.9.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
- "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
+ "node_modules/@truffle/debugger/node_modules/@types/node": {
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
},
- "node_modules/@types/pbkdf2": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
- "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+ "node_modules/@truffle/debugger/node_modules/cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
"dependencies": {
- "@types/node": "*"
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/@types/qs": {
- "version": "6.9.7",
- "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
- "dev": true
- },
- "node_modules/@types/readable-stream": {
- "version": "2.3.13",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.13.tgz",
- "integrity": "sha512-4JSCx8EUzaW9Idevt+9lsRAt1lcSccoQfE+AouM1gk8sFxnnytKNIO3wTl9Dy+4m6jRJ1yXhboLHHT/LXBQiEw==",
+ "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dependencies": {
- "@types/node": "*",
- "safe-buffer": "*"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/@types/retry": {
- "version": "0.12.1",
- "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
- "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g=="
+ "node_modules/@truffle/debugger/node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/@types/secp256k1": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz",
- "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==",
+ "node_modules/@truffle/debugger/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"dependencies": {
- "@types/node": "*"
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/@types/semver": {
- "version": "7.3.9",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz",
- "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ=="
- },
- "node_modules/@types/spark-md5": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/@types/spark-md5/-/spark-md5-3.0.2.tgz",
- "integrity": "sha512-82E/lVRaqelV9qmRzzJ1PKTpyrpnT7mwdneKNJB9hUtypZDMggloDfFUCIqRRx3lYRxteCwXSq9c+W71Vf0QnQ=="
+ "node_modules/@truffle/debugger/node_modules/defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
},
- "node_modules/@types/sparqljs": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/@types/sparqljs/-/sparqljs-3.1.3.tgz",
- "integrity": "sha512-nmFgmR6ns4i8sg9fYu+293H+PMLKmDOZy34sgwgAeUEEiIqSs4guj5aCZRt3gq1g0yuKXkqrxLDq/684g7pGtQ==",
+ "node_modules/@truffle/debugger/node_modules/eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
"dependencies": {
- "rdf-js": "^4.0.2"
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/@types/uritemplate": {
- "version": "0.3.4",
- "resolved": "https://registry.npmjs.org/@types/uritemplate/-/uritemplate-0.3.4.tgz",
- "integrity": "sha512-1D8mJEeQEXynoPQKJkneIK+tXaM2Qnk6c80RBQPV/O2ToypI4mlqXy5jojnYKjTX2Q+EMNMOWt0wNdLbb2MUpA=="
+ "node_modules/@truffle/debugger/node_modules/eth-lib/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/@types/uuid": {
- "version": "8.3.1",
- "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz",
- "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg=="
+ "node_modules/@truffle/debugger/node_modules/eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
- "node_modules/@types/xml": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/@types/xml/-/xml-1.0.8.tgz",
- "integrity": "sha512-IptEZBtDwSPayCP8FmbordhAdjdxsif4zH29xTbBRacZeCHFHZp8OxyG1/CrS8AS0MziJUPTGWCTKbYtvHGYPg==",
+ "node_modules/@truffle/debugger/node_modules/get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dependencies": {
- "@types/node": "*"
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/@types/yargs": {
- "version": "17.0.10",
- "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
- "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
+ "node_modules/@truffle/debugger/node_modules/got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
"dependencies": {
- "@types/yargs-parser": "*"
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "node_modules/@types/yargs-parser": {
- "version": "21.0.0",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
- "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
- },
- "node_modules/@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
- "node_modules/@vascosantos/moving-average": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz",
- "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w=="
+ "node_modules/@truffle/debugger/node_modules/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
},
- "node_modules/@webassemblyjs/ast": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
- "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
"dependencies": {
- "@webassemblyjs/helper-module-context": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0"
+ "json-buffer": "3.0.0"
}
},
- "node_modules/@webassemblyjs/floating-point-hex-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
- "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/debugger/node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/@webassemblyjs/helper-api-error": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
- "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/debugger/node_modules/normalize-url": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/@webassemblyjs/helper-buffer": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
- "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/debugger/node_modules/p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/@webassemblyjs/helper-code-frame": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
- "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@webassemblyjs/wast-printer": "1.9.0"
+ "node_modules/@truffle/debugger/node_modules/prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/@webassemblyjs/helper-fsm": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
- "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/debugger/node_modules/responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "dependencies": {
+ "lowercase-keys": "^1.0.0"
+ }
},
- "node_modules/@webassemblyjs/helper-module-context": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
- "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
"dependencies": {
- "@webassemblyjs/ast": "1.9.0"
+ "prepend-http": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/@webassemblyjs/helper-wasm-bytecode": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
- "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
- "dev": true,
- "peer": true
+ "node_modules/@truffle/debugger/node_modules/uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
},
- "node_modules/@webassemblyjs/helper-wasm-section": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
- "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.4.tgz",
+ "integrity": "sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A==",
+ "hasInstallScript": true,
"dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0"
+ "web3-bzz": "1.7.4",
+ "web3-core": "1.7.4",
+ "web3-eth": "1.7.4",
+ "web3-eth-personal": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-shh": "1.7.4",
+ "web3-utils": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/ieee754": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
- "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-bzz": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.4.tgz",
+ "integrity": "sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q==",
+ "hasInstallScript": true,
"dependencies": {
- "@xtuc/ieee754": "^1.2.0"
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/leb128": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
- "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-core": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.4.tgz",
+ "integrity": "sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q==",
"dependencies": {
- "@xtuc/long": "4.2.2"
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-requestmanager": "1.7.4",
+ "web3-utils": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/utf8": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
- "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
- "dev": true,
- "peer": true
- },
- "node_modules/@webassemblyjs/wasm-edit": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
- "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-core-helpers": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz",
+ "integrity": "sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg==",
"dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/helper-wasm-section": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-opt": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0",
- "@webassemblyjs/wast-printer": "1.9.0"
+ "web3-eth-iban": "1.7.4",
+ "web3-utils": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/wasm-gen": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
- "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-core-method": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.4.tgz",
+ "integrity": "sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ==",
"dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
+ "@ethersproject/transactions": "^5.6.2",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-utils": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/wasm-opt": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
- "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-core-promievent": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz",
+ "integrity": "sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA==",
"dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-buffer": "1.9.0",
- "@webassemblyjs/wasm-gen": "1.9.0",
- "@webassemblyjs/wasm-parser": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wasm-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
- "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
- "@webassemblyjs/ieee754": "1.9.0",
- "@webassemblyjs/leb128": "1.9.0",
- "@webassemblyjs/utf8": "1.9.0"
- }
- },
- "node_modules/@webassemblyjs/wast-parser": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
- "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/floating-point-hex-parser": "1.9.0",
- "@webassemblyjs/helper-api-error": "1.9.0",
- "@webassemblyjs/helper-code-frame": "1.9.0",
- "@webassemblyjs/helper-fsm": "1.9.0",
- "@xtuc/long": "4.2.2"
+ "eventemitter3": "4.0.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@webassemblyjs/wast-printer": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
- "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/debugger/node_modules/web3-core-requestmanager": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz",
+ "integrity": "sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA==",
"dependencies": {
- "@webassemblyjs/ast": "1.9.0",
- "@webassemblyjs/wast-parser": "1.9.0",
- "@xtuc/long": "4.2.2"
+ "util": "^0.12.0",
+ "web3-core-helpers": "1.7.4",
+ "web3-providers-http": "1.7.4",
+ "web3-providers-ipc": "1.7.4",
+ "web3-providers-ws": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/@xtuc/ieee754": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
- "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
- "dev": true,
- "peer": true
- },
- "node_modules/@xtuc/long": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
- "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
- "dev": true,
- "peer": true
- },
- "node_modules/abbrev": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
- "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
- },
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "node_modules/@truffle/debugger/node_modules/web3-core-subscriptions": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz",
+ "integrity": "sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g==",
"dependencies": {
- "event-target-shim": "^5.0.0"
+ "eventemitter3": "4.0.4",
+ "web3-core-helpers": "1.7.4"
},
"engines": {
- "node": ">=6.5"
+ "node": ">=8.0.0"
}
},
- "node_modules/abortable-iterator": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz",
- "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==",
- "dependencies": {
- "get-iterator": "^1.0.2"
+ "node_modules/@truffle/debugger/node_modules/web3-eth": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.4.tgz",
+ "integrity": "sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug==",
+ "dependencies": {
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-eth-accounts": "1.7.4",
+ "web3-eth-contract": "1.7.4",
+ "web3-eth-ens": "1.7.4",
+ "web3-eth-iban": "1.7.4",
+ "web3-eth-personal": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-utils": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/accepts": {
- "version": "1.3.7",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
- "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
+ "node_modules/@truffle/debugger/node_modules/web3-eth-abi": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz",
+ "integrity": "sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg==",
"dependencies": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "@ethersproject/abi": "^5.6.3",
+ "web3-utils": "1.7.4"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">=8.0.0"
}
},
- "node_modules/acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "bin": {
- "acorn": "bin/acorn"
+ "node_modules/@truffle/debugger/node_modules/web3-eth-accounts": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz",
+ "integrity": "sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw==",
+ "dependencies": {
+ "@ethereumjs/common": "^2.5.0",
+ "@ethereumjs/tx": "^3.3.2",
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-util": "^7.0.10",
+ "scrypt-js": "^3.0.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-utils": "1.7.4"
},
"engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/aes-js": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
- "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==",
- "dev": true
- },
- "node_modules/aggregate-error": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
- "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
+ "node_modules/@truffle/debugger/node_modules/web3-eth-contract": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz",
+ "integrity": "sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ==",
"dependencies": {
- "clean-stack": "^2.0.0",
- "indent-string": "^4.0.0"
+ "@types/bn.js": "^5.1.0",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-utils": "1.7.4"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.0.0"
}
},
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "node_modules/@truffle/debugger/node_modules/web3-eth-ens": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz",
+ "integrity": "sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA==",
"dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-eth-contract": "1.7.4",
+ "web3-utils": "1.7.4"
},
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv-errors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
- "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": ">=5.0.0"
- }
- },
- "node_modules/ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true,
- "peerDependencies": {
- "ajv": "^6.9.1"
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
+ "node_modules/@truffle/debugger/node_modules/web3-eth-iban": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz",
+ "integrity": "sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w==",
"dependencies": {
- "string-width": "^4.1.0"
- }
- },
- "node_modules/ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "bn.js": "^5.2.1",
+ "web3-utils": "1.7.4"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=8.0.0"
}
},
- "node_modules/ansi-escapes": {
- "version": "4.3.2",
- "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
- "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
- "dev": true,
+ "node_modules/@truffle/debugger/node_modules/web3-eth-personal": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz",
+ "integrity": "sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g==",
"dependencies": {
- "type-fest": "^0.21.3"
+ "@types/node": "^12.12.6",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-utils": "1.7.4"
},
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=8.0.0"
}
},
- "node_modules/ansi-escapes/node_modules/type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
- "dev": true,
- "engines": {
- "node": ">=10"
+ "node_modules/@truffle/debugger/node_modules/web3-net": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.4.tgz",
+ "integrity": "sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg==",
+ "dependencies": {
+ "web3-core": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-utils": "1.7.4"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
- "node": ">=8"
+ "node": ">=8.0.0"
}
},
- "node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "node_modules/@truffle/debugger/node_modules/web3-providers-http": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.4.tgz",
+ "integrity": "sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA==",
"dependencies": {
- "color-convert": "^1.9.0"
+ "web3-core-helpers": "1.7.4",
+ "xhr2-cookies": "1.1.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/any-promise": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
- "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
- },
- "node_modules/any-signal": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz",
- "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==",
+ "node_modules/@truffle/debugger/node_modules/web3-providers-ipc": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz",
+ "integrity": "sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw==",
"dependencies": {
- "abort-controller": "^3.0.0",
- "native-abort-controller": "^1.0.3"
+ "oboe": "2.1.5",
+ "web3-core-helpers": "1.7.4"
+ },
+ "engines": {
+ "node": ">=8.0.0"
}
},
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
+ "node_modules/@truffle/debugger/node_modules/web3-providers-ws": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz",
+ "integrity": "sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ==",
"dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
+ "eventemitter3": "4.0.4",
+ "web3-core-helpers": "1.7.4",
+ "websocket": "^1.0.32"
},
"engines": {
- "node": ">= 8"
+ "node": ">=8.0.0"
}
},
- "node_modules/app-root-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
- "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==",
+ "node_modules/@truffle/debugger/node_modules/web3-shh": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.4.tgz",
+ "integrity": "sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "web3-core": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-net": "1.7.4"
+ },
"engines": {
- "node": ">= 6.0.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/append-transform": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
- "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
- "dev": true,
+ "node_modules/@truffle/debugger/node_modules/web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
"dependencies": {
- "default-require-extensions": "^3.0.0"
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=8.0.0"
}
},
- "node_modules/aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
- "dev": true
- },
- "node_modules/archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
- "dev": true
+ "node_modules/@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
},
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/@truffle/hdwallet-provider": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz",
+ "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==",
"dependencies": {
- "sprintf-js": "~1.0.2"
+ "@ethereumjs/common": "^2.4.0",
+ "@ethereumjs/tx": "^3.3.0",
+ "@trufflesuite/web3-provider-engine": "15.0.14",
+ "eth-sig-util": "^3.0.1",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereum-protocol": "^1.0.1",
+ "ethereumjs-util": "^6.1.0",
+ "ethereumjs-wallet": "^1.0.1"
}
},
- "node_modules/args": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz",
- "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==",
+ "node_modules/@truffle/hdwallet-provider/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"dependencies": {
- "camelcase": "5.0.0",
- "chalk": "2.4.2",
- "leven": "2.1.0",
- "mri": "1.1.4"
- },
- "engines": {
- "node": ">= 6.0.0"
+ "@types/node": "*"
}
},
- "node_modules/args/node_modules/camelcase": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
- "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/@truffle/hdwallet-provider/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/args/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "node_modules/@truffle/hdwallet-provider/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/args/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "engines": {
- "node": ">=0.8.0"
+ "node_modules/@truffle/source-map-utils": {
+ "version": "1.3.91",
+ "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.91.tgz",
+ "integrity": "sha512-TvY7fbix3txDtp58abaGWGHZuKiwajkgFXlOqYBHRJ9fsFdI30fCOMetiDHxcRMKajP2zF0df5cMnAxH5rQsOg==",
+ "dependencies": {
+ "@truffle/code-utils": "^2.0.0",
+ "@truffle/codec": "^0.14.1",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.1",
+ "node-interval-tree": "^1.3.3",
+ "web3-utils": "1.7.4"
}
},
- "node_modules/aria-query": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
- "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
- "dev": true,
- "peer": true,
+ "node_modules/@truffle/source-map-utils/node_modules/web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
"dependencies": {
- "@babel/runtime": "^7.10.2",
- "@babel/runtime-corejs3": "^7.10.2"
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
},
"engines": {
- "node": ">=6.0"
+ "node": ">=8.0.0"
}
},
- "node_modules/arr-diff": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
- "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/@trufflesuite/eth-json-rpc-filters": {
+ "version": "4.1.2-1",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz",
+ "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==",
+ "dependencies": {
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0",
+ "await-semaphore": "^0.1.3",
+ "eth-query": "^2.1.2",
+ "json-rpc-engine": "^5.1.3",
+ "lodash.flatmap": "^4.5.0",
+ "safe-event-emitter": "^1.0.1"
}
},
- "node_modules/arr-flatten": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
- "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/@trufflesuite/eth-json-rpc-infura": {
+ "version": "4.0.3-0",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz",
+ "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==",
+ "dependencies": {
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1",
+ "cross-fetch": "^2.1.1",
+ "eth-json-rpc-errors": "^1.0.1",
+ "json-rpc-engine": "^5.1.3"
}
},
- "node_modules/arr-union": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
- "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/cross-fetch": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz",
+ "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==",
+ "dependencies": {
+ "node-fetch": "^2.6.7",
+ "whatwg-fetch": "^2.0.4"
}
},
- "node_modules/array-flatten": {
+ "node_modules/@trufflesuite/eth-json-rpc-infura/node_modules/eth-json-rpc-errors": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "node_modules/array-includes": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
- "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.2",
- "get-intrinsic": "^1.1.1",
- "is-string": "^1.0.5"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
+ "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
+ "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors",
+ "dependencies": {
+ "fast-safe-stringify": "^2.0.6"
+ }
+ },
+ "node_modules/@trufflesuite/eth-json-rpc-middleware": {
+ "version": "4.4.2-1",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz",
+ "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==",
+ "dependencies": {
+ "@trufflesuite/eth-sig-util": "^1.4.2",
+ "btoa": "^1.2.1",
+ "clone": "^2.1.1",
+ "eth-json-rpc-errors": "^1.0.1",
+ "eth-query": "^2.1.2",
+ "ethereumjs-block": "^1.6.0",
+ "ethereumjs-tx": "^1.3.7",
+ "ethereumjs-util": "^5.1.2",
+ "ethereumjs-vm": "^2.6.0",
+ "fetch-ponyfill": "^4.0.0",
+ "json-rpc-engine": "^5.1.3",
+ "json-stable-stringify": "^1.0.1",
+ "pify": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
}
},
- "node_modules/array-unique": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
- "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
- "dev": true,
- "peer": true,
+ "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.8"
}
},
- "node_modules/array.prototype.flat": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
- "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
- "dev": true,
- "peer": true,
+ "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/eth-json-rpc-errors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
+ "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
+ "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors",
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "fast-safe-stringify": "^2.0.6"
}
},
- "node_modules/array.prototype.flatmap": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
- "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
- "dev": true,
- "peer": true,
+ "node_modules/@trufflesuite/eth-json-rpc-middleware/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "call-bind": "^1.0.0",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.18.0-next.1",
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/arrayify-stream": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arrayify-stream/-/arrayify-stream-2.0.0.tgz",
- "integrity": "sha512-Z2NRtxpWQIz3NRA2bEZOziIungBH+fpsFFEolc5u8uVRheYitvsDNvejlfyh/hjZ9VyS9Ba62oY0zc5oa6Wu7g=="
+ "node_modules/@trufflesuite/eth-sig-util": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz",
+ "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==",
+ "dependencies": {
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^5.1.1"
+ }
},
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
- "dev": true
+ "node_modules/@trufflesuite/eth-sig-util/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "node_modules/@trufflesuite/eth-sig-util/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "safer-buffer": "~2.1.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/asn1.js": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
- "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
- "dependencies": {
- "bn.js": "^4.0.0",
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0",
- "safer-buffer": "^2.1.0"
+ "node_modules/@trufflesuite/web3-provider-engine": {
+ "version": "15.0.14",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz",
+ "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==",
+ "dependencies": {
+ "@ethereumjs/tx": "^3.3.0",
+ "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1",
+ "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0",
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1",
+ "@trufflesuite/eth-sig-util": "^1.4.2",
+ "async": "^2.5.0",
+ "backoff": "^2.5.0",
+ "clone": "^2.0.0",
+ "cross-fetch": "^2.1.0",
+ "eth-block-tracker": "^4.4.2",
+ "eth-json-rpc-errors": "^2.0.2",
+ "ethereumjs-block": "^1.2.2",
+ "ethereumjs-util": "^5.1.5",
+ "ethereumjs-vm": "^2.3.4",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "readable-stream": "^2.2.9",
+ "request": "^2.85.0",
+ "semaphore": "^1.0.3",
+ "ws": "^5.1.1",
+ "xhr": "^2.2.0",
+ "xtend": "^4.0.1"
}
},
- "node_modules/assert": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
- "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
- "dev": true,
- "peer": true,
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dependencies": {
- "object-assign": "^4.1.1",
- "util": "0.10.3"
+ "lodash": "^4.17.14"
}
},
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"engines": {
"node": ">=0.8"
}
},
- "node_modules/assert/node_modules/inherits": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
- "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
- "dev": true,
- "peer": true
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/cross-fetch": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz",
+ "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==",
+ "dependencies": {
+ "node-fetch": "^2.6.7",
+ "whatwg-fetch": "^2.0.4"
+ }
},
- "node_modules/assert/node_modules/util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
- "peer": true,
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "inherits": "2.0.1"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true,
- "engines": {
- "node": "*"
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/assertion-error-formatter": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz",
- "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==",
- "dev": true,
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
- "diff": "^4.0.1",
- "pad-right": "^0.2.2",
- "repeat-string": "^1.6.1"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/assign-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
- "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/@trufflesuite/web3-provider-engine/node_modules/ws": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz",
+ "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==",
+ "dependencies": {
+ "async-limiter": "~1.0.0"
}
},
- "node_modules/ast-types-flow": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
- "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "node_modules/@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/cacheable-request": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
+ "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==",
+ "dependencies": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "*",
+ "@types/node": "*",
+ "@types/responselike": "*"
+ }
+ },
+ "node_modules/@types/concat-stream": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
+ "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "@types/node": "*"
+ }
},
- "node_modules/astral-regex": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
- "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
- "engines": {
- "node": ">=8"
+ "node_modules/@types/form-data": {
+ "version": "0.0.33",
+ "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz",
+ "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
+ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
},
- "node_modules/async-each": {
+ "node_modules/@types/http-link-header": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
- "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
+ "resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.3.tgz",
+ "integrity": "sha512-y8HkoD/vyid+5MrJ3aas0FvU3/BVBGcyG9kgxL0Zn4JwstA8CglFPnrR0RuzOjRCXwqzL5uxWC2IO7Ub0rMU2A==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ=="
+ },
+ "node_modules/@types/json-stable-stringify": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz",
+ "integrity": "sha512-s2cfwagOQAS8o06TcwKfr9Wx11dNGbH2E9vJz1cqV+a/LOyhWNLUNd6JSRYNzvB4d29UuJX2M0Dj9vE1T8fRXw=="
+ },
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=",
"dev": true,
- "optional": true,
"peer": true
},
- "node_modules/async-limiter": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
- "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ "node_modules/@types/keyv": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+ "dependencies": {
+ "@types/node": "*"
+ }
},
- "node_modules/asynciterator": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.4.0.tgz",
- "integrity": "sha512-jFuvnCHjUAyW33E3zpZhQxBM3SDuyxkDwtjhXD27WKwB/7UrZHaDAia7ZbqL94zLbUGhgxhO0vfopTLi7Jcrig=="
+ "node_modules/@types/long": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
+ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
},
- "node_modules/asyncjoin": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/asyncjoin/-/asyncjoin-1.0.5.tgz",
- "integrity": "sha512-yRNu4POPpxKH/dMW0e6XyXflFaTYZRib3rdVMkJb8Zb2toT7v3ZjTmR5oEPB8vvNfxGwCuiS7fLMZq/uWoOx2Q==",
+ "node_modules/@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw=="
+ },
+ "node_modules/@types/minimatch": {
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz",
+ "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ=="
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ=="
+ },
+ "node_modules/@types/n3": {
+ "version": "1.10.4",
+ "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.10.4.tgz",
+ "integrity": "sha512-FfRTwcbXcScVHuAjIASveRWL6Fi6fPALl1Ge8tMESYLqU7R42LJvtdBpUi+f9YK0oQPqIN+zFFgMDFJfLMx0bg==",
"dependencies": {
- "asynciterator": "^3.2.0"
+ "@types/node": "*",
+ "rdf-js": "^4.0.2"
}
},
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+ "node_modules/@types/node": {
+ "version": "16.9.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
+ "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
},
- "node_modules/at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "engines": {
- "node": ">= 4.0.0"
+ "node_modules/@types/node-fetch": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
+ "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
+ "dependencies": {
+ "@types/node": "*",
+ "form-data": "^3.0.0"
}
},
- "node_modules/atob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
- "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
- "dev": true,
- "peer": true,
- "bin": {
- "atob": "bin/atob.js"
+ "node_modules/@types/node-fetch/node_modules/form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">= 4.5.0"
+ "node": ">= 6"
}
},
- "node_modules/atomic-sleep": {
+ "node_modules/@types/pbkdf2": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
+ "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/qs": {
+ "version": "6.9.7",
+ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
+ "dev": true
+ },
+ "node_modules/@types/readable-stream": {
+ "version": "2.3.13",
+ "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.13.tgz",
+ "integrity": "sha512-4JSCx8EUzaW9Idevt+9lsRAt1lcSccoQfE+AouM1gk8sFxnnytKNIO3wTl9Dy+4m6jRJ1yXhboLHHT/LXBQiEw==",
+ "dependencies": {
+ "@types/node": "*",
+ "safe-buffer": "*"
+ }
+ },
+ "node_modules/@types/responselike": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
- "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
- "engines": {
- "node": ">=8.0.0"
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
+ "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/available-typed-arrays": {
+ "node_modules/@types/retry": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
+ "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g=="
+ },
+ "node_modules/@types/secp256k1": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz",
+ "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.9",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.9.tgz",
+ "integrity": "sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ=="
+ },
+ "node_modules/@types/spark-md5": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@types/spark-md5/-/spark-md5-3.0.2.tgz",
+ "integrity": "sha512-82E/lVRaqelV9qmRzzJ1PKTpyrpnT7mwdneKNJB9hUtypZDMggloDfFUCIqRRx3lYRxteCwXSq9c+W71Vf0QnQ=="
+ },
+ "node_modules/@types/sparqljs": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/@types/sparqljs/-/sparqljs-3.1.3.tgz",
+ "integrity": "sha512-nmFgmR6ns4i8sg9fYu+293H+PMLKmDOZy34sgwgAeUEEiIqSs4guj5aCZRt3gq1g0yuKXkqrxLDq/684g7pGtQ==",
+ "dependencies": {
+ "rdf-js": "^4.0.2"
+ }
+ },
+ "node_modules/@types/uritemplate": {
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@types/uritemplate/-/uritemplate-0.3.4.tgz",
+ "integrity": "sha512-1D8mJEeQEXynoPQKJkneIK+tXaM2Qnk6c80RBQPV/O2ToypI4mlqXy5jojnYKjTX2Q+EMNMOWt0wNdLbb2MUpA=="
+ },
+ "node_modules/@types/uuid": {
+ "version": "8.3.1",
+ "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz",
+ "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg=="
+ },
+ "node_modules/@types/websocket": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz",
+ "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==",
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/awilix": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/awilix/-/awilix-5.0.1.tgz",
- "integrity": "sha512-Sm4F0kUuKMW+tzB5+2PGU/geBrCXmtdhy3a+l+KZdyzUMY8B9cueMaeR5zESZOH0VwsIA40FFT4Mr1JY8pknYw==",
+ "node_modules/@types/xml": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/xml/-/xml-1.0.8.tgz",
+ "integrity": "sha512-IptEZBtDwSPayCP8FmbordhAdjdxsif4zH29xTbBRacZeCHFHZp8OxyG1/CrS8AS0MziJUPTGWCTKbYtvHGYPg==",
"dependencies": {
- "camel-case": "^4.1.2",
- "glob": "^7.1.7"
- },
- "engines": {
- "node": ">=12.0.0"
+ "@types/node": "*"
}
},
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "engines": {
- "node": "*"
+ "node_modules/@types/yargs": {
+ "version": "17.0.10",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.10.tgz",
+ "integrity": "sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==",
+ "dependencies": {
+ "@types/yargs-parser": "*"
}
},
- "node_modules/aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA=="
},
- "node_modules/axe-core": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz",
- "integrity": "sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==",
+ "node_modules/@ungap/promise-all-settled": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
+ },
+ "node_modules/@vascosantos/moving-average": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@vascosantos/moving-average/-/moving-average-1.1.0.tgz",
+ "integrity": "sha512-MVEJ4vWAPNbrGLjz7ITnHYg+YXZ6ijAqtH5/cHwSoCpbvuJ98aLXwFfPKAUfZpJMQR5uXB58UJajbY130IRF/w=="
+ },
+ "node_modules/@webassemblyjs/ast": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
+ "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
"dev": true,
"peer": true,
- "engines": {
- "node": ">=4"
+ "dependencies": {
+ "@webassemblyjs/helper-module-context": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0"
}
},
- "node_modules/axios": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
- "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
+ "node_modules/@webassemblyjs/floating-point-hex-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
+ "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-api-error": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
+ "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-buffer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
+ "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-code-frame": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
+ "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "follow-redirects": "^1.14.4"
+ "@webassemblyjs/wast-printer": "1.9.0"
}
},
- "node_modules/axobject-query": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
- "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
+ "node_modules/@webassemblyjs/helper-fsm": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
+ "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==",
"dev": true,
"peer": true
},
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/base": {
- "version": "0.11.2",
- "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
- "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
+ "node_modules/@webassemblyjs/helper-module-context": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
+ "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
"dev": true,
"peer": true,
"dependencies": {
- "cache-base": "^1.0.1",
- "class-utils": "^0.3.5",
- "component-emitter": "^1.2.1",
- "define-property": "^1.0.0",
- "isobject": "^3.0.1",
- "mixin-deep": "^1.2.0",
- "pascalcase": "^0.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@webassemblyjs/ast": "1.9.0"
}
},
- "node_modules/base-x": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
- "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
+ "node_modules/@webassemblyjs/helper-wasm-bytecode": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
+ "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/helper-wasm-section": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
+ "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "safe-buffer": "^5.0.1"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0"
}
},
- "node_modules/base/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "node_modules/@webassemblyjs/ieee754": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
+ "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
"dev": true,
"peer": true,
"dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@xtuc/ieee754": "^1.2.0"
}
},
- "node_modules/base/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
+ "node_modules/@webassemblyjs/leb128": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
+ "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
"dev": true,
"peer": true,
"dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/base/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "node_modules/@webassemblyjs/utf8": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
+ "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@webassemblyjs/wasm-edit": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
+ "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
"dev": true,
"peer": true,
"dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/helper-wasm-section": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-opt": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0",
+ "@webassemblyjs/wast-printer": "1.9.0"
}
},
- "node_modules/base/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "node_modules/@webassemblyjs/wasm-gen": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
+ "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
"dev": true,
"peer": true,
"dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
}
},
- "node_modules/base/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "node_modules/@webassemblyjs/wasm-opt": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
+ "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
"dev": true,
"peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-buffer": "1.9.0",
+ "@webassemblyjs/wasm-gen": "1.9.0",
+ "@webassemblyjs/wasm-parser": "1.9.0"
}
},
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/base64url": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
- "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
- "engines": {
- "node": ">=6.0.0"
+ "node_modules/@webassemblyjs/wasm-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
+ "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-wasm-bytecode": "1.9.0",
+ "@webassemblyjs/ieee754": "1.9.0",
+ "@webassemblyjs/leb128": "1.9.0",
+ "@webassemblyjs/utf8": "1.9.0"
}
},
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+ "node_modules/@webassemblyjs/wast-parser": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
+ "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "tweetnacl": "^0.14.3"
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/floating-point-hex-parser": "1.9.0",
+ "@webassemblyjs/helper-api-error": "1.9.0",
+ "@webassemblyjs/helper-code-frame": "1.9.0",
+ "@webassemblyjs/helper-fsm": "1.9.0",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/big-integer": {
- "version": "1.6.51",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
- "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
- "engines": {
- "node": ">=0.6"
+ "node_modules/@webassemblyjs/wast-printer": {
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
+ "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@webassemblyjs/ast": "1.9.0",
+ "@webassemblyjs/wast-parser": "1.9.0",
+ "@xtuc/long": "4.2.2"
}
},
- "node_modules/big-number": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/big-number/-/big-number-2.0.0.tgz",
- "integrity": "sha512-C67Su0g+XsmXADX/UM9L/+xSbqqwq0D/qGJs2ky6Noy2FDuCZnC38ZSXODiaBvqWma2VYRZEXgm4H74PS6tCDg=="
+ "node_modules/@xtuc/ieee754": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
+ "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==",
+ "dev": true,
+ "peer": true
},
- "node_modules/big.js": {
- "version": "5.2.2",
- "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
- "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "node_modules/@xtuc/long": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
+ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
"dev": true,
- "peer": true,
- "engines": {
- "node": "*"
- }
+ "peer": true
},
- "node_modules/bignumber.js": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
- "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
- "engines": {
- "node": "*"
- }
+ "node_modules/abbrev": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
- "node_modules/binary": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
- "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
+ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"dependencies": {
- "buffers": "~0.1.1",
- "chainsaw": "~0.1.0"
+ "event-target-shim": "^5.0.0"
},
"engines": {
- "node": "*"
+ "node": ">=6.5"
}
},
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node_modules/abortable-iterator": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz",
+ "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==",
+ "dependencies": {
+ "get-iterator": "^1.0.2"
}
},
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "node_modules/abortcontroller-polyfill": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
+ "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q=="
+ },
+ "node_modules/abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
"dependencies": {
- "file-uri-to-path": "1.0.0"
+ "xtend": "~4.0.0"
}
},
- "node_modules/bl": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz",
- "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==",
+ "node_modules/accepts": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
+ "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"dependencies": {
- "buffer": "^6.0.3",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
+ "mime-types": "~2.1.24",
+ "negotiator": "0.6.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "node_modules/blakejs": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz",
- "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg=="
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
- },
- "node_modules/bn": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bn/-/bn-1.0.5.tgz",
- "integrity": "sha512-7TvGbqbZb6lDzsBtNz1VkdXXV0BVmZKPPViPmo2IpvwaryF7P+QKYKACyVkwo2mZPr2CpFiz7EtgPEcc3o/JFQ=="
- },
- "node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
- },
- "node_modules/body-parser": {
- "version": "1.19.0",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
- "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
- "dependencies": {
- "bytes": "3.1.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
- "iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
+ "node_modules/acorn": {
+ "version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">=0.4.0"
}
},
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/body-parser/node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "node_modules/aes-js": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
+ "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
+ },
+ "node_modules/aggregate-error": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
+ "clean-stack": "^2.0.0",
+ "indent-string": "^4.0.0"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
},
- "node_modules/body-parser/node_modules/qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
- "engines": {
- "node": ">=0.6"
+ "node_modules/ajv-errors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
+ "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
+ "dev": true,
+ "peerDependencies": {
+ "ajv": ">=5.0.0"
}
},
- "node_modules/boxen": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
+ "node_modules/ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true,
- "dependencies": {
- "ansi-align": "^3.0.0",
- "camelcase": "^6.2.0",
- "chalk": "^4.1.0",
- "cli-boxes": "^2.2.1",
- "string-width": "^4.2.2",
- "type-fest": "^0.20.2",
- "widest-line": "^3.1.0",
- "wrap-ansi": "^7.0.0"
- },
+ "peerDependencies": {
+ "ajv": "^6.9.1"
+ }
+ },
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6"
}
},
- "node_modules/boxen/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"dependencies": {
- "color-convert": "^2.0.1"
+ "type-fest": "^0.21.3"
},
"engines": {
"node": ">=8"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/boxen/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "node_modules/ansi-escapes/node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
"engines": {
"node": ">=10"
@@ -4973,1122 +6128,3616 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/boxen/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
- "color-name": "~1.1.4"
+ "color-convert": "^1.9.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=4"
}
},
- "node_modules/boxen/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8="
},
- "node_modules/boxen/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
+ "node_modules/any-signal": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz",
+ "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "abort-controller": "^3.0.0",
+ "native-abort-controller": "^1.0.3"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": ">= 8"
}
},
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "node_modules/app-module-path": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
+ "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ=="
+ },
+ "node_modules/app-root-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
+ "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==",
+ "engines": {
+ "node": ">= 6.0.0"
}
},
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "node_modules/append-transform": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz",
+ "integrity": "sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==",
"dev": true,
"dependencies": {
- "fill-range": "^7.0.1"
+ "default-require-extensions": "^3.0.0"
},
"engines": {
"node": ">=8"
}
},
- "node_modules/brolog": {
- "version": "1.12.4",
- "resolved": "https://registry.npmjs.org/brolog/-/brolog-1.12.4.tgz",
- "integrity": "sha512-ibNvm1hD3WMhKAnxelbwI8t39c5Z0s/gMFARj1Y/tdID1s3dCSdd2UVn+6wtu04nRUTg4TXg9s1WXqcD5d0ZVw=="
- },
- "node_modules/brorand": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
- "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ "node_modules/aproba": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
},
- "node_modules/browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
+ "node_modules/archy": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
+ "integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
"dev": true
},
- "node_modules/browserify-aes": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
- "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dependencies": {
- "buffer-xor": "^1.0.3",
- "cipher-base": "^1.0.0",
- "create-hash": "^1.1.0",
- "evp_bytestokey": "^1.0.3",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "sprintf-js": "~1.0.2"
}
},
- "node_modules/browserify-cipher": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
- "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "node_modules/args": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/args/-/args-5.0.1.tgz",
+ "integrity": "sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==",
"dependencies": {
- "browserify-aes": "^1.0.4",
- "browserify-des": "^1.0.0",
- "evp_bytestokey": "^1.0.0"
+ "camelcase": "5.0.0",
+ "chalk": "2.4.2",
+ "leven": "2.1.0",
+ "mri": "1.1.4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
}
},
- "node_modules/browserify-des": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
- "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "des.js": "^1.0.0",
- "inherits": "^2.0.1",
- "safe-buffer": "^5.1.2"
+ "node_modules/args/node_modules/camelcase": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
+ "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/browserify-rsa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
- "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "node_modules/args/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
- "bn.js": "^5.0.0",
- "randombytes": "^2.0.1"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/browserify-rsa/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- },
- "node_modules/browserify-sign": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
- "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
- "dependencies": {
- "bn.js": "^5.1.1",
- "browserify-rsa": "^4.0.1",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "elliptic": "^6.5.3",
- "inherits": "^2.0.4",
- "parse-asn1": "^5.1.5",
- "readable-stream": "^3.6.0",
- "safe-buffer": "^5.2.0"
+ "node_modules/args/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "node_modules/browserify-sign/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- },
- "node_modules/browserify-sign/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/browserify-zlib": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
- "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "node_modules/aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
"dev": true,
"peer": true,
"dependencies": {
- "pako": "~1.0.5"
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ },
+ "engines": {
+ "node": ">=6.0"
}
},
- "node_modules/browserslist": {
- "version": "4.17.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz",
- "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==",
+ "node_modules/arr-diff": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=",
"dev": true,
- "dependencies": {
- "caniuse-lite": "^1.0.30001254",
- "colorette": "^1.3.0",
- "electron-to-chromium": "^1.3.830",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.75"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/bs58": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
- "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
- "node_modules/bs58check": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
- "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
- "dependencies": {
- "bs58": "^4.0.0",
- "create-hash": "^1.1.0",
- "safe-buffer": "^5.1.2"
- }
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
- }
- },
- "node_modules/buffer-from": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
- "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
- "dev": true
- },
- "node_modules/buffer-indexof-polyfill": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
- "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/buffer-to-arraybuffer": {
- "version": "0.0.5",
- "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
- "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo="
- },
- "node_modules/buffer-xor": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
- "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
- },
- "node_modules/buffers": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
- "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
- "engines": {
- "node": ">=0.2.0"
- }
- },
- "node_modules/bufferutil": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz",
- "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==",
- "hasInstallScript": true,
- "dependencies": {
- "node-gyp-build": "^4.2.0"
- },
+ "peer": true,
"engines": {
- "node": ">=6.14.2"
+ "node": ">=0.10.0"
}
},
- "node_modules/builtin-status-codes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
- "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
+ "node_modules/arr-flatten": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
"dev": true,
- "peer": true
- },
- "node_modules/busboy": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
- "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
- "dependencies": {
- "dicer": "0.3.0"
- },
+ "peer": true,
"engines": {
- "node": ">=4.5.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/bytes": {
+ "node_modules/arr-union": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
- "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/cacache": {
- "version": "12.0.4",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
- "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=",
"dev": true,
- "dependencies": {
- "bluebird": "^3.5.5",
- "chownr": "^1.1.1",
- "figgy-pudding": "^3.5.1",
- "glob": "^7.1.4",
- "graceful-fs": "^4.1.15",
- "infer-owner": "^1.0.3",
- "lru-cache": "^5.1.1",
- "mississippi": "^3.0.0",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.6.3",
- "ssri": "^6.0.1",
- "unique-filename": "^1.1.1",
- "y18n": "^4.0.0"
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/cacache/node_modules/lru-cache": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
- "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
- "dev": true,
- "dependencies": {
- "yallist": "^3.0.2"
- }
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
- "node_modules/cacache/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "node_modules/array-includes": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz",
+ "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==",
"dev": true,
+ "peer": true,
"dependencies": {
- "minimist": "^1.2.6"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.2",
+ "get-intrinsic": "^1.1.1",
+ "is-string": "^1.0.5"
},
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/cacache/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
+ "engines": {
+ "node": ">= 0.4"
},
- "bin": {
- "rimraf": "bin.js"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cacache/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
- "dev": true
- },
- "node_modules/cache-base": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
- "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "node_modules/array-unique": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=",
"dev": true,
"peer": true,
- "dependencies": {
- "collection-visit": "^1.0.0",
- "component-emitter": "^1.2.1",
- "get-value": "^2.0.6",
- "has-value": "^1.0.0",
- "isobject": "^3.0.1",
- "set-value": "^2.0.0",
- "to-object-path": "^0.3.0",
- "union-value": "^1.0.0",
- "unset-value": "^1.0.0"
- },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/cacheable-request": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "node_modules/array.prototype.flat": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz",
+ "integrity": "sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "clone-response": "^1.0.2",
- "get-stream": "^5.1.0",
- "http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
- "lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cacheable-request/node_modules/get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "node_modules/array.prototype.flatmap": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz",
+ "integrity": "sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "pump": "^3.0.0"
+ "call-bind": "^1.0.0",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.18.0-next.1",
+ "function-bind": "^1.1.1"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "node_modules/arrayify-stream": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
- "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
- "engines": {
- "node": ">=8"
+ "resolved": "https://registry.npmjs.org/arrayify-stream/-/arrayify-stream-2.0.0.tgz",
+ "integrity": "sha512-Z2NRtxpWQIz3NRA2bEZOziIungBH+fpsFFEolc5u8uVRheYitvsDNvejlfyh/hjZ9VyS9Ba62oY0zc5oa6Wu7g=="
+ },
+ "node_modules/asap": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "dev": true
+ },
+ "node_modules/asn1": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
}
},
- "node_modules/caching-transform": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
- "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
- "dev": true,
+ "node_modules/asn1.js": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz",
+ "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==",
"dependencies": {
- "hasha": "^5.0.0",
- "make-dir": "^3.0.0",
- "package-hash": "^4.0.0",
- "write-file-atomic": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
+ "bn.js": "^4.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "safer-buffer": "^2.1.0"
}
},
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/asn1.js/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/assert": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz",
+ "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "object-assign": "^4.1.1",
+ "util": "0.10.3"
}
},
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
"engines": {
- "node": ">=6"
+ "node": ">=0.8"
}
},
- "node_modules/camel-case": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
- "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "node_modules/assert/node_modules/inherits": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz",
+ "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/assert/node_modules/util": {
+ "version": "0.10.3",
+ "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
+ "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
+ "inherits": "2.0.1"
}
},
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "node_modules/assertion-error": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"engines": {
- "node": ">=6"
+ "node": "*"
}
},
- "node_modules/caniuse-lite": {
- "version": "1.0.30001257",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz",
- "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==",
+ "node_modules/assertion-error-formatter": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/assertion-error-formatter/-/assertion-error-formatter-3.0.0.tgz",
+ "integrity": "sha512-6YyAVLrEze0kQ7CmJfUgrLHb+Y7XghmL2Ie7ijVa2Y9ynP3LV+VDiwFk62Dn0qtqbmY0BT0ss6p1xxpiF2PYbQ==",
"dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
+ "dependencies": {
+ "diff": "^4.0.1",
+ "pad-right": "^0.2.2",
+ "repeat-string": "^1.6.1"
}
},
- "node_modules/canonicalize": {
+ "node_modules/assertion-tools": {
"version": "1.0.8",
- "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
- "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
- },
- "node_modules/capital-case": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
- "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-1.0.8.tgz",
+ "integrity": "sha512-tv5lYwLkrJAIbaRNBwlD65Qztwad5NafO1VH+DxjnGRt53xk0qkSHX1CQu82dGg7fjkGcRZjc+mnlPH2gjmcIg==",
"dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case-first": "^2.0.2"
+ "jsonld": "^6.0.0",
+ "keccak256": "^1.0.6",
+ "merkletreejs": "^0.2.32",
+ "multiformats": "^9.7.1",
+ "web3": "^1.7.4"
}
},
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
- },
- "node_modules/chai": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
- "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
- "dev": true,
+ "node_modules/assertion-tools/node_modules/@digitalbazaar/http-client": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.2.0.tgz",
+ "integrity": "sha512-NhYXcWE/JDE7AnJikNX7q0S6zNuUPA2NuIoRdUpmvHlarjmRqyr6hIO3Awu2FxlUzbdiI1uzuWrZyB9mD1tTvw==",
"dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
+ "ky": "^0.30.0",
+ "ky-universal": "^0.10.1",
+ "undici": "^5.2.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=14.0"
}
},
- "node_modules/chai-as-promised": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
- "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
- "dev": true,
- "dependencies": {
- "check-error": "^1.0.2"
- },
- "peerDependencies": {
- "chai": ">= 2.1.2 < 5"
+ "node_modules/assertion-tools/node_modules/data-uri-to-buffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
+ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA==",
+ "engines": {
+ "node": ">= 12"
}
},
- "node_modules/chainsaw": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
- "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
+ "node_modules/assertion-tools/node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
"dependencies": {
- "traverse": ">=0.3.0 <0.4"
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
},
"engines": {
- "node": "*"
+ "node": "^12.20 || >= 14.13"
}
},
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "node_modules/assertion-tools/node_modules/jsonld": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-6.0.0.tgz",
+ "integrity": "sha512-1SkN2RXhMCTCSkX+bzHvr9ycM2HTmjWyV41hn2xG7k6BqlCgRjw0zHmuqfphjBRPqi1gKMIqgBCe/0RZMcWrAA==",
"dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "@digitalbazaar/http-client": "^3.2.0",
+ "canonicalize": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "rdf-canonize": "^3.0.0"
},
"engines": {
- "node": ">=10"
+ "node": ">=14"
+ }
+ },
+ "node_modules/assertion-tools/node_modules/ky": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.30.0.tgz",
+ "integrity": "sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog==",
+ "engines": {
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/sindresorhus/ky?sponsor=1"
}
},
- "node_modules/chalk/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/assertion-tools/node_modules/ky-universal": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.10.1.tgz",
+ "integrity": "sha512-r8909k+ELKZAxhVA5c440x22hqw5XcMRwLRbgpPQk4JHy3/ddJnvzcnSo5Ww3HdKdNeS3Y8dBgcIYyVahMa46g==",
"dependencies": {
- "color-convert": "^2.0.1"
+ "abort-controller": "^3.0.0",
+ "node-fetch": "^3.2.2"
},
"engines": {
- "node": ">=8"
+ "node": ">=14"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sindresorhus/ky-universal?sponsor=1"
+ },
+ "peerDependencies": {
+ "ky": ">=0.26.0",
+ "web-streams-polyfill": ">=3.0.1"
+ },
+ "peerDependenciesMeta": {
+ "web-streams-polyfill": {
+ "optional": true
+ }
}
},
- "node_modules/chalk/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/assertion-tools/node_modules/node-fetch": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz",
+ "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==",
"dependencies": {
- "color-name": "~1.1.4"
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/node-fetch"
}
},
- "node_modules/chalk/node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/chalk/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/assign-symbols": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=",
+ "dev": true,
+ "peer": true,
"engines": {
- "node": ">=8"
+ "node": ">=0.10.0"
}
},
- "node_modules/chalk/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
+ "node_modules/ast-types-flow": {
+ "version": "0.0.7",
+ "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz",
+ "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"engines": {
"node": ">=8"
}
},
- "node_modules/check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ "node_modules/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
- "node_modules/chrome-trace-event": {
+ "node_modules/async-each": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
- "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=6.0"
- }
- },
- "node_modules/ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "dev": true
+ "optional": true,
+ "peer": true
},
- "node_modules/cids": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
- "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
- "deprecated": "This module has been superseded by the multiformats module",
+ "node_modules/async-eventemitter": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz",
+ "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==",
"dependencies": {
- "buffer": "^5.5.0",
- "class-is": "^1.1.0",
- "multibase": "~0.6.0",
- "multicodec": "^1.0.0",
- "multihashes": "~0.4.15"
- },
- "engines": {
- "node": ">=4.0.0",
- "npm": ">=3.0.0"
+ "async": "^2.4.0"
}
},
- "node_modules/cids/node_modules/buffer": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
- "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "node_modules/async-eventemitter/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
+ "lodash": "^4.17.14"
}
},
- "node_modules/cids/node_modules/multicodec": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
- "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
- "deprecated": "This module has been superseded by the multiformats module",
+ "node_modules/async-limiter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
+ "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
+ },
+ "node_modules/async-mutex": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz",
+ "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==",
"dependencies": {
- "buffer": "^5.6.0",
- "varint": "^5.0.0"
+ "tslib": "^2.3.1"
}
},
- "node_modules/cids/node_modules/varint": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
- "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
+ "node_modules/asynciterator": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.4.0.tgz",
+ "integrity": "sha512-jFuvnCHjUAyW33E3zpZhQxBM3SDuyxkDwtjhXD27WKwB/7UrZHaDAia7ZbqL94zLbUGhgxhO0vfopTLi7Jcrig=="
},
- "node_modules/cipher-base": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
- "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "node_modules/asyncjoin": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/asyncjoin/-/asyncjoin-1.0.5.tgz",
+ "integrity": "sha512-yRNu4POPpxKH/dMW0e6XyXflFaTYZRib3rdVMkJb8Zb2toT7v3ZjTmR5oEPB8vvNfxGwCuiS7fLMZq/uWoOx2Q==",
"dependencies": {
- "inherits": "^2.0.1",
- "safe-buffer": "^5.0.1"
+ "asynciterator": "^3.2.0"
}
},
- "node_modules/class-is": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
- "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
- },
- "node_modules/class-transformer": {
+ "node_modules/asynckit": {
"version": "0.4.0",
- "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz",
- "integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA==",
- "dev": true
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
- "node_modules/class-utils": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
- "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "node_modules/at-least-node": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
+ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/atob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"dev": true,
"peer": true,
- "dependencies": {
- "arr-union": "^3.1.0",
- "define-property": "^0.2.5",
- "isobject": "^3.0.0",
- "static-extend": "^0.1.1"
+ "bin": {
+ "atob": "bin/atob.js"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 4.5.0"
}
},
- "node_modules/clean-stack": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
- "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "node_modules/atomic-sleep": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
+ "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
"engines": {
- "node": ">=6"
+ "node": ">=8.0.0"
}
},
- "node_modules/cli-boxes": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true,
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
"engines": {
- "node": ">=6"
+ "node": ">= 0.4"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/cli-color": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz",
- "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==",
+ "node_modules/await-semaphore": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz",
+ "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q=="
+ },
+ "node_modules/awilix": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/awilix/-/awilix-5.0.1.tgz",
+ "integrity": "sha512-Sm4F0kUuKMW+tzB5+2PGU/geBrCXmtdhy3a+l+KZdyzUMY8B9cueMaeR5zESZOH0VwsIA40FFT4Mr1JY8pknYw==",
"dependencies": {
- "d": "^1.0.1",
- "es5-ext": "^0.10.53",
- "es6-iterator": "^2.0.3",
- "memoizee": "^0.4.15",
- "timers-ext": "^0.1.7"
+ "camel-case": "^4.1.2",
+ "glob": "^7.1.7"
},
"engines": {
- "node": ">=0.10"
+ "node": ">=12.0.0"
}
},
- "node_modules/cli-cursor": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
- "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
- "dev": true,
- "dependencies": {
- "restore-cursor": "^3.1.0"
- },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
"engines": {
- "node": ">=8"
+ "node": "*"
}
},
- "node_modules/cli-table3": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz",
- "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==",
+ "node_modules/aws4": {
+ "version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+ },
+ "node_modules/axe-core": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.3.3.tgz",
+ "integrity": "sha512-/lqqLAmuIPi79WYfRpy2i8z+x+vxU3zX2uAm0gs1q52qTuKwolOj1P8XbufpXcsydrpKx2yGn2wzAnxCMV86QA==",
"dev": true,
- "dependencies": {
- "string-width": "^4.2.0"
- },
+ "peer": true,
"engines": {
- "node": "10.* || >= 12.*"
- },
- "optionalDependencies": {
- "colors": "1.4.0"
+ "node": ">=4"
}
},
- "node_modules/cli-truncate": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
- "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
- "dev": true,
+ "node_modules/axios": {
+ "version": "0.24.0",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
+ "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
"dependencies": {
- "slice-ansi": "^5.0.0",
- "string-width": "^5.0.0"
- },
- "engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "follow-redirects": "^1.14.4"
}
},
- "node_modules/cli-truncate/node_modules/ansi-regex": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
- "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "node_modules/axobject-query": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==",
"dev": true,
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-regex?sponsor=1"
- }
+ "peer": true
},
- "node_modules/cli-truncate/node_modules/ansi-styles": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
- "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
+ "node_modules/babel-plugin-polyfill-corejs2": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
+ "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
+ "dependencies": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "semver": "^6.1.1"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/cli-truncate/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true
+ "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
},
- "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
- "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
- "dev": true,
- "engines": {
- "node": ">=12"
+ "node_modules/babel-plugin-polyfill-corejs3": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
+ "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
+ "dependencies": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "core-js-compat": "^3.21.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/cli-truncate/node_modules/slice-ansi": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
- "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
- "dev": true,
+ "node_modules/babel-plugin-polyfill-regenerator": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
+ "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
"dependencies": {
- "ansi-styles": "^6.0.0",
- "is-fullwidth-code-point": "^4.0.0"
- },
- "engines": {
- "node": ">=12"
+ "@babel/helper-define-polyfill-provider": "^0.3.2"
},
- "funding": {
- "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
}
},
- "node_modules/cli-truncate/node_modules/string-width": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
- "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
- "dev": true,
+ "node_modules/backoff": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
+ "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==",
"dependencies": {
- "eastasianwidth": "^0.2.0",
- "emoji-regex": "^9.2.2",
- "strip-ansi": "^7.0.1"
+ "precond": "0.2"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">= 0.6"
}
},
- "node_modules/cli-truncate/node_modules/strip-ansi": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
- "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+ },
+ "node_modules/base": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "ansi-regex": "^6.0.1"
+ "cache-base": "^1.0.1",
+ "class-utils": "^0.3.5",
+ "component-emitter": "^1.2.1",
+ "define-property": "^1.0.0",
+ "isobject": "^3.0.1",
+ "mixin-deep": "^1.2.0",
+ "pascalcase": "^0.1.1"
},
"engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ "node": ">=0.10.0"
}
},
- "node_modules/cliui": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
- "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "node_modules/base-x": {
+ "version": "3.0.8",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz",
+ "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==",
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^6.2.0"
- }
- },
- "node_modules/clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
- "engines": {
- "node": ">=0.8"
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "node_modules/base/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "mimic-response": "^1.0.0"
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/collection-visit": {
+ "node_modules/base/node_modules/is-accessor-descriptor": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
- "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"peer": true,
"dependencies": {
- "map-visit": "^1.0.0",
- "object-visit": "^1.0.0"
+ "kind-of": "^6.0.0"
},
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/color": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
- "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "node_modules/base/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "color-convert": "^1.9.3",
- "color-string": "^1.6.0"
+ "kind-of": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/base/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "color-name": "1.1.3"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "node_modules/color-string": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
- "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
- "dependencies": {
- "color-name": "^1.0.0",
- "simple-swizzle": "^0.2.2"
+ "node_modules/base/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/colorette": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
},
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true,
+ "node_modules/base64url": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
+ "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
"engines": {
- "node": ">=0.1.90"
+ "node": ">=6.0.0"
}
},
- "node_modules/colorspace": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
- "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "node_modules/bcrypt-pbkdf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
"dependencies": {
- "color": "^3.1.3",
- "text-hex": "1.0.x"
+ "tweetnacl": "^0.14.3"
}
},
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
+ "node_modules/big-integer": {
+ "version": "1.6.51",
+ "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz",
+ "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==",
"engines": {
- "node": ">= 0.8"
+ "node": ">=0.6"
}
},
- "node_modules/command-exists": {
- "version": "1.2.9",
- "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
- "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
- "dev": true
- },
- "node_modules/commander": {
- "version": "2.20.3",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
- "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ "node_modules/big-number": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/big-number/-/big-number-2.0.0.tgz",
+ "integrity": "sha512-C67Su0g+XsmXADX/UM9L/+xSbqqwq0D/qGJs2ky6Noy2FDuCZnC38ZSXODiaBvqWma2VYRZEXgm4H74PS6tCDg=="
},
- "node_modules/commondir": {
+ "node_modules/big.js": {
+ "version": "5.2.2",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz",
+ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz",
+ "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
+ "dependencies": {
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
+ "node_modules/bl": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-5.0.0.tgz",
+ "integrity": "sha512-8vxFNZ0pflFfi0WXA3WQXlj6CaMEwsmh63I1CNp0q+wWv8sD0ARx1KovSQd0l2GkwrMIOyedq0EF1FxI+RCZLQ==",
+ "dependencies": {
+ "buffer": "^6.0.3",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/blakejs": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.1.tgz",
+ "integrity": "sha512-bLG6PHOCZJKNshTjGRBvET0vTciwQE6zFKOKKXPDJfwFBd4Ac0yBfPZqcGvGJap50l7ktvlpFqc2jGVaUgbJgg=="
+ },
+ "node_modules/bluebird": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
+ "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
+ },
+ "node_modules/bn.js": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
+ },
+ "node_modules/body-parser": {
+ "version": "1.19.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
+ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
+ "dependencies": {
+ "bytes": "3.1.0",
+ "content-type": "~1.0.4",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "http-errors": "1.7.2",
+ "iconv-lite": "0.4.24",
+ "on-finished": "~2.3.0",
+ "qs": "6.7.0",
+ "raw-body": "2.4.0",
+ "type-is": "~1.6.17"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/body-parser/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/body-parser/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/body-parser/node_modules/qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brolog": {
+ "version": "1.12.4",
+ "resolved": "https://registry.npmjs.org/brolog/-/brolog-1.12.4.tgz",
+ "integrity": "sha512-ibNvm1hD3WMhKAnxelbwI8t39c5Z0s/gMFARj1Y/tdID1s3dCSdd2UVn+6wtu04nRUTg4TXg9s1WXqcD5d0ZVw=="
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8="
+ },
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
+ },
+ "node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
+ "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
+ "dependencies": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/browserify-cipher": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz",
+ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
+ "dependencies": {
+ "browserify-aes": "^1.0.4",
+ "browserify-des": "^1.0.0",
+ "evp_bytestokey": "^1.0.0"
+ }
+ },
+ "node_modules/browserify-des": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz",
+ "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "des.js": "^1.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/browserify-rsa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz",
+ "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
+ "dependencies": {
+ "bn.js": "^5.0.0",
+ "randombytes": "^2.0.1"
+ }
+ },
+ "node_modules/browserify-sign": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz",
+ "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==",
+ "dependencies": {
+ "bn.js": "^5.1.1",
+ "browserify-rsa": "^4.0.1",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "elliptic": "^6.5.3",
+ "inherits": "^2.0.4",
+ "parse-asn1": "^5.1.5",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ }
+ },
+ "node_modules/browserify-sign/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/browserify-zlib": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz",
+ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "pako": "~1.0.5"
+ }
+ },
+ "node_modules/browserslist": {
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
+ "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
+ "dependencies": {
+ "caniuse-lite": "^1.0.30001370",
+ "electron-to-chromium": "^1.4.202",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.5"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=",
+ "dependencies": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "node_modules/bs58check": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz",
+ "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==",
+ "dependencies": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "node_modules/btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==",
+ "bin": {
+ "btoa": "bin/btoa.js"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
- "node_modules/component-emitter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
- "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "node_modules/buffer-indexof-polyfill": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
+ "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/buffer-reverse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz",
+ "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg=="
+ },
+ "node_modules/buffer-to-arraybuffer": {
+ "version": "0.0.5",
+ "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
+ "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ=="
+ },
+ "node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
+ "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk="
+ },
+ "node_modules/buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=",
+ "engines": {
+ "node": ">=0.2.0"
+ }
+ },
+ "node_modules/bufferutil": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz",
+ "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=6.14.2"
+ }
+ },
+ "node_modules/builtin-status-codes": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
+ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=",
"dev": true,
"peer": true
},
- "node_modules/componentsjs": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/componentsjs/-/componentsjs-5.0.1.tgz",
- "integrity": "sha512-FMpAYBTJk+/Lsq0mgL6ugyabFjFy4H9d37GkgeGFxFt45GPxe2SKNoujoUDRNCQolajFSngisl105Ju8qzp+LQ==",
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"dependencies": {
- "@rdfjs/types": "*",
- "@types/minimist": "^1.2.0",
- "@types/node": "^14.14.7",
- "@types/semver": "^7.3.4",
- "jsonld-context-parser": "^2.1.1",
- "minimist": "^1.2.0",
- "rdf-data-factory": "^1.1.0",
- "rdf-object": "^1.13.1",
- "rdf-parse": "^2.0.0",
- "rdf-quad": "^1.5.0",
- "rdf-terms": "^1.7.0",
- "semver": "^7.3.2",
- "winston": "^3.3.3"
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
+ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/cacache": {
+ "version": "12.0.4",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz",
+ "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==",
+ "dev": true,
+ "dependencies": {
+ "bluebird": "^3.5.5",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.4",
+ "graceful-fs": "^4.1.15",
+ "infer-owner": "^1.0.3",
+ "lru-cache": "^5.1.1",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.3",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
+ "y18n": "^4.0.0"
+ }
+ },
+ "node_modules/cacache/node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/cacache/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
},
"bin": {
- "componentsjs-compile-config": "bin/compile-config.js"
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/cacache/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/cacache/node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "dev": true
+ },
+ "node_modules/cache-base": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "collection-visit": "^1.0.0",
+ "component-emitter": "^1.2.1",
+ "get-value": "^2.0.6",
+ "has-value": "^1.0.0",
+ "isobject": "^3.0.1",
+ "set-value": "^2.0.0",
+ "to-object-path": "^0.3.0",
+ "union-value": "^1.0.0",
+ "unset-value": "^1.0.0"
},
"engines": {
- "node": ">=8.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/componentsjs/node_modules/@types/node": {
- "version": "14.18.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.14.tgz",
- "integrity": "sha512-HTgN9C1x8iMFycNAkLKIkJg+D3z1j0/Bm5/CMyzI3bO8a8dS0U1FxlS6hfvg5MPUYqkG3Y1myuje7HUNKLX9Mw=="
+ "node_modules/cacheable-lookup": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
+ "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==",
+ "engines": {
+ "node": ">=10.6.0"
+ }
},
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ "node_modules/cacheable-request": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
+ "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
+ "dependencies": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^4.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/concat-stream": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
- "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "node_modules/cacheable-request/node_modules/get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dependencies": {
+ "pump": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cacheable-request/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/caching-transform": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz",
+ "integrity": "sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==",
+ "dev": true,
+ "dependencies": {
+ "hasha": "^5.0.0",
+ "make-dir": "^3.0.0",
+ "package-hash": "^4.0.0",
+ "write-file-atomic": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "dependencies": {
+ "function-bind": "^1.1.1",
+ "get-intrinsic": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camel-case": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz",
+ "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==",
+ "dependencies": {
+ "pascal-case": "^3.1.2",
+ "tslib": "^2.0.3"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001376",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001376.tgz",
+ "integrity": "sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
+ },
+ "node_modules/canonicalize": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-1.0.8.tgz",
+ "integrity": "sha512-0CNTVCLZggSh7bc5VkX5WWPWO+cyZbNd07IHIsSXLia/eAq+r836hgk+8BKoEh7949Mda87VUOitx5OddVj64A=="
+ },
+ "node_modules/capital-case": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
+ "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==",
+ "dev": true,
+ "dependencies": {
+ "no-case": "^3.0.4",
+ "tslib": "^2.0.3",
+ "upper-case-first": "^2.0.2"
+ }
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+ },
+ "node_modules/cbor": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz",
+ "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==",
+ "dependencies": {
+ "bignumber.js": "^9.0.1",
+ "nofilter": "^1.0.4"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/chai": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
+ "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
+ "dev": true,
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "check-error": "^1.0.2",
+ "deep-eql": "^3.0.1",
+ "get-func-name": "^2.0.0",
+ "loupe": "^2.3.1",
+ "pathval": "^1.1.1",
+ "type-detect": "^4.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/chai-as-promised": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz",
+ "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==",
+ "dev": true,
+ "dependencies": {
+ "check-error": "^1.0.2"
+ },
+ "peerDependencies": {
+ "chai": ">= 2.1.2 < 5"
+ }
+ },
+ "node_modules/chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
+ "dependencies": {
+ "traverse": ">=0.3.0 <0.4"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/chalk/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/chalk/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/chalk/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/change-case": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz",
+ "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==",
+ "dependencies": {
+ "camel-case": "^3.0.0",
+ "constant-case": "^2.0.0",
+ "dot-case": "^2.1.0",
+ "header-case": "^1.0.0",
+ "is-lower-case": "^1.1.0",
+ "is-upper-case": "^1.1.0",
+ "lower-case": "^1.1.1",
+ "lower-case-first": "^1.0.0",
+ "no-case": "^2.3.2",
+ "param-case": "^2.1.0",
+ "pascal-case": "^2.0.0",
+ "path-case": "^2.1.0",
+ "sentence-case": "^2.1.0",
+ "snake-case": "^2.1.0",
+ "swap-case": "^1.1.0",
+ "title-case": "^2.1.0",
+ "upper-case": "^1.1.1",
+ "upper-case-first": "^1.1.0"
+ }
+ },
+ "node_modules/change-case/node_modules/camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==",
+ "dependencies": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/change-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/change-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node_modules/change-case/node_modules/pascal-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz",
+ "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==",
+ "dependencies": {
+ "camel-case": "^3.0.0",
+ "upper-case-first": "^1.1.0"
+ }
+ },
+ "node_modules/change-case/node_modules/upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
+ "dependencies": {
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
+ "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/checkpoint-store": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz",
+ "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==",
+ "dependencies": {
+ "functional-red-black-tree": "^1.0.1"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
+ "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
+ },
+ "node_modules/chrome-trace-event": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz",
+ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6.0"
+ }
+ },
+ "node_modules/cids": {
+ "version": "0.7.5",
+ "resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
+ "integrity": "sha512-zT7mPeghoWAu+ppn8+BS1tQ5qGmbMfB4AregnQjA/qHY3GC1m1ptI9GkWNlgeu38r7CuRdXB47uY2XgAYt6QVA==",
+ "deprecated": "This module has been superseded by the multiformats module",
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "class-is": "^1.1.0",
+ "multibase": "~0.6.0",
+ "multicodec": "^1.0.0",
+ "multihashes": "~0.4.15"
+ },
+ "engines": {
+ "node": ">=4.0.0",
+ "npm": ">=3.0.0"
+ }
+ },
+ "node_modules/cids/node_modules/buffer": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
+ "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
+ }
+ },
+ "node_modules/cids/node_modules/multicodec": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-1.0.4.tgz",
+ "integrity": "sha512-NDd7FeS3QamVtbgfvu5h7fd1IlbaC4EQ0/pgU4zqE2vdHCmBGsUa0TiM8/TdSeG6BMPC92OOCf8F1ocE/Wkrrg==",
+ "deprecated": "This module has been superseded by the multiformats module",
+ "dependencies": {
+ "buffer": "^5.6.0",
+ "varint": "^5.0.0"
+ }
+ },
+ "node_modules/cids/node_modules/varint": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz",
+ "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
+ },
+ "node_modules/cipher-base": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
+ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/class-is": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz",
+ "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw=="
+ },
+ "node_modules/class-transformer": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.4.0.tgz",
+ "integrity": "sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA==",
+ "dev": true
+ },
+ "node_modules/class-utils": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "arr-union": "^3.1.0",
+ "define-property": "^0.2.5",
+ "isobject": "^3.0.0",
+ "static-extend": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/clean-stack": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/cli-color": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz",
+ "integrity": "sha512-eBbxZF6fqPUNnf7CLAFOersUnyYzv83tHFLSlts+OAHsNendaqv2tHCq+/MO+b3Y+9JeoUlIvobyxG/Z8GNeOg==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.53",
+ "es6-iterator": "^2.0.3",
+ "memoizee": "^0.4.15",
+ "timers-ext": "^0.1.7"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/cli-cursor": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
+ "dev": true,
+ "dependencies": {
+ "restore-cursor": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cli-table3": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz",
+ "integrity": "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA==",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^4.2.0"
+ },
+ "engines": {
+ "node": "10.* || >= 12.*"
+ },
+ "optionalDependencies": {
+ "colors": "1.4.0"
+ }
+ },
+ "node_modules/cli-truncate": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz",
+ "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==",
+ "dev": true,
+ "dependencies": {
+ "slice-ansi": "^5.0.0",
+ "string-width": "^5.0.0"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
+ "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/ansi-styles": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.1.0.tgz",
+ "integrity": "sha512-VbqNsoz55SYGczauuup0MFUyXNQviSpFTj1RQtFzmQLk18qbVSpTFFGMT293rmDaQuKCT6InmbuEyUne4mTuxQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true
+ },
+ "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz",
+ "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/slice-ansi": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz",
+ "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^6.0.0",
+ "is-fullwidth-code-point": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/cli-truncate/node_modules/strip-ansi": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.0.1.tgz",
+ "integrity": "sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/cliui": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+ "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^6.2.0"
+ }
+ },
+ "node_modules/clone": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/clone-response": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/collection-visit": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "map-visit": "^1.0.0",
+ "object-visit": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
+ },
+ "node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/colorspace": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "dependencies": {
+ "color": "^3.1.3",
+ "text-hex": "1.0.x"
+ }
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/command-exists": {
+ "version": "1.2.9",
+ "resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
+ "integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
+ "dev": true
+ },
+ "node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
+ "node_modules/component-emitter": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/componentsjs": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/componentsjs/-/componentsjs-5.0.1.tgz",
+ "integrity": "sha512-FMpAYBTJk+/Lsq0mgL6ugyabFjFy4H9d37GkgeGFxFt45GPxe2SKNoujoUDRNCQolajFSngisl105Ju8qzp+LQ==",
+ "dependencies": {
+ "@rdfjs/types": "*",
+ "@types/minimist": "^1.2.0",
+ "@types/node": "^14.14.7",
+ "@types/semver": "^7.3.4",
+ "jsonld-context-parser": "^2.1.1",
+ "minimist": "^1.2.0",
+ "rdf-data-factory": "^1.1.0",
+ "rdf-object": "^1.13.1",
+ "rdf-parse": "^2.0.0",
+ "rdf-quad": "^1.5.0",
+ "rdf-terms": "^1.7.0",
+ "semver": "^7.3.2",
+ "winston": "^3.3.3"
+ },
+ "bin": {
+ "componentsjs-compile-config": "bin/compile-config.js"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/componentsjs/node_modules/@types/node": {
+ "version": "14.18.14",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.14.tgz",
+ "integrity": "sha512-HTgN9C1x8iMFycNAkLKIkJg+D3z1j0/Bm5/CMyzI3bO8a8dS0U1FxlS6hfvg5MPUYqkG3Y1myuje7HUNKLX9Mw=="
+ },
+ "node_modules/compress-brotli": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz",
+ "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==",
+ "dependencies": {
+ "@types/json-buffer": "~3.0.0",
+ "json-buffer": "~3.0.1"
+ },
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+ },
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
+ "dev": true,
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
+ }
+ },
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/concat-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/config-chain": {
+ "version": "1.1.13",
+ "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
+ "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "dependencies": {
+ "ini": "^1.3.4",
+ "proto-list": "~1.2.1"
+ }
+ },
+ "node_modules/confusing-browser-globals": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
+ "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",
+ "dev": true
+ },
+ "node_modules/console-browserify": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
+ "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/constant-case": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz",
+ "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==",
+ "dependencies": {
+ "snake-case": "^2.1.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/constants-browserify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
+ "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
+ "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "dependencies": {
+ "safe-buffer": "5.1.2"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-hash": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
+ "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
+ "dependencies": {
+ "cids": "^0.7.1",
+ "multicodec": "^0.5.5",
+ "multihashes": "^0.4.15"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/convert-source-map": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "dependencies": {
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/cookie": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
+ "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "node_modules/cookiejar": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz",
+ "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ=="
+ },
+ "node_modules/copy-concurrently": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
+ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "dev": true,
+ "dependencies": {
+ "aproba": "^1.1.1",
+ "fs-write-stream-atomic": "^1.0.8",
+ "iferr": "^0.1.5",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.4",
+ "run-queue": "^1.0.0"
+ }
+ },
+ "node_modules/copy-concurrently/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/copy-concurrently/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/copy-descriptor": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/core-js-compat": {
+ "version": "3.24.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz",
+ "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==",
+ "dependencies": {
+ "browserslist": "^4.21.3",
+ "semver": "7.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-js-compat/node_modules/semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/core-js-pure": {
+ "version": "3.17.3",
+ "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz",
+ "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "peer": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/core-js"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+ },
+ "node_modules/cors": {
+ "version": "2.8.5",
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
+ "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "dependencies": {
+ "object-assign": "^4",
+ "vary": "^1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==",
+ "bin": {
+ "crc32": "bin/crc32.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/create-ecdh": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
+ "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "elliptic": "^6.5.3"
+ }
+ },
+ "node_modules/create-ecdh/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/create-hash": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
+ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "node_modules/create-hmac": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
+ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "node_modules/cross-fetch": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "dependencies": {
+ "node-fetch": "2.6.7"
+ }
+ },
+ "node_modules/cross-fetch/node_modules/node-fetch": {
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/crypto-browserify": {
+ "version": "3.12.0",
+ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
+ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "dependencies": {
+ "browserify-cipher": "^1.0.0",
+ "browserify-sign": "^4.0.0",
+ "create-ecdh": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "create-hmac": "^1.1.0",
+ "diffie-hellman": "^5.0.0",
+ "inherits": "^2.0.1",
+ "pbkdf2": "^3.0.3",
+ "public-encrypt": "^4.0.0",
+ "randombytes": "^2.0.0",
+ "randomfill": "^1.0.3"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/crypto-js": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
+ "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
+ },
+ "node_modules/cyclist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
+ "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
+ "dev": true
+ },
+ "node_modules/d": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
+ "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
+ "dependencies": {
+ "es5-ext": "^0.10.50",
+ "type": "^1.0.1"
+ }
+ },
+ "node_modules/damerau-levenshtein": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz",
+ "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/data-uri-to-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
+ "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/dateformat": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decode-uri-component": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/deeks": {
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/deeks/-/deeks-2.5.1.tgz",
+ "integrity": "sha512-fqrBeUz7f1UqaXDRzVB5RG2EfPk15HJRrb2pMZj8mLlSTtz4tRPsK5leFOskoHFPuyZ6+7aRM9j657fvXLkJ7Q==",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
+ "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
+ "dev": true,
+ "dependencies": {
+ "type-detect": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ },
+ "node_modules/default-gateway": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
+ "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "dependencies": {
+ "execa": "^5.0.0"
+ },
+ "engines": {
+ "node": ">= 10"
+ }
+ },
+ "node_modules/default-require-extensions": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
+ "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
+ "dev": true,
+ "dependencies": {
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/default-require-extensions/node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/defaults": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "dependencies": {
+ "clone": "^1.0.2"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "dependencies": {
+ "abstract-leveldown": "~2.6.0"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
+ "dependencies": {
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/define-property": {
+ "version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "is-descriptor": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/denque": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
+ "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/des.js": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
+ "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
+ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/diffie-hellman": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
+ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "dependencies": {
+ "bn.js": "^4.1.0",
+ "miller-rabin": "^4.0.0",
+ "randombytes": "^2.0.0"
+ }
+ },
+ "node_modules/diffie-hellman/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/dkg-evm-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-1.0.1.tgz",
+ "integrity": "sha512-trmiV9LyzHIS4u7F+1c85RZZ16aumYdrScuK0yeHL9GxkymvIxY1eBkwK5F5K0jELkx7nRVicS1ioYl5k9DAMw==",
+ "dependencies": {
+ "@openzeppelin/contracts": "^4.6.0",
+ "@truffle/hdwallet-provider": "^1.2.1",
+ "bn.js": "^5.1.3",
+ "dotenv": "^8.2.0",
+ "fs": "0.0.1-security",
+ "ganache": "^7.3.1",
+ "ganache-cli": "^6.12.2",
+ "ganache-time-traveler": "^1.0.15",
+ "hamming-distance": "^1.0.0",
+ "hex-to-binary": "^1.0.1",
+ "keccak256": "^1.0.6",
+ "merkle-tools": "^1.4.1",
+ "merkletreejs": "^0.2.32",
+ "minimist": "latest",
+ "mocha": "^8.2.1",
+ "multiformats": "^9.6.5",
+ "truffle": "^5.1.56",
+ "truffle-assertions": "^0.9.2",
+ "uint8arrays": "^3.0.0",
+ "web3": "^1.3.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "node_modules/dkg-evm-module/node_modules/chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "dependencies": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "node_modules/dkg-evm-module/node_modules/debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
+ "node_modules/dkg-evm-module/node_modules/diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "dependencies": {
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/mocha": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz",
+ "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==",
+ "dependencies": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "4.0.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
+ "serialize-javascript": "5.0.1",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
+ "engines": {
+ "node": ">= 10.12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/mochajs"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/nanoid": {
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw==",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "dependencies": {
+ "string-width": "^1.0.2 || 2"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/wide-align/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/wide-align/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/workerpool": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg=="
+ },
+ "node_modules/dkg-evm-module/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "dependencies": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dkg-evm-module/node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dkg.js": {
+ "version": "6.0.0-beta.2.7",
+ "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.0.0-beta.2.7.tgz",
+ "integrity": "sha512-L8eu3OdODyfJw6+MVlsHGPEBk1SWh8fRhClxKboO3e/xdi6WqdL8Y2foOEHvPk7IssRu40Fd11WWUb6pqiHpuw==",
+ "dev": true,
+ "dependencies": {
+ "axios": "^0.26.1",
+ "crypto-js": "^4.1.1",
+ "form-data": "^4.0.0",
+ "loglevel": "^1.8.0",
+ "merkle-tools": "^1.4.1",
+ "n3": "^1.12.2",
+ "sparqljs": "^3.5.1",
+ "sync-request": "^6.1.0",
+ "uglifyjs-webpack-plugin": "^2.2.0",
+ "uuid": "^8.3.2"
+ }
+ },
+ "node_modules/dkg.js/node_modules/axios": {
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "dev": true,
+ "dependencies": {
+ "follow-redirects": "^1.14.8"
+ }
+ },
+ "node_modules/dns-over-http-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
+ "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==",
+ "dependencies": {
+ "debug": "^4.3.1",
+ "native-fetch": "^3.0.0",
+ "receptacle": "^1.3.2"
+ }
+ },
+ "node_modules/doc-path": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/doc-path/-/doc-path-3.0.2.tgz",
+ "integrity": "sha512-VRlA2OKSjTbHWj6wmSanxJ338fE/YN8pqmZ0FIWK5JWkIJMFRc4KmD35JtOrnjvVG0WrzOtDDNHx1lN1tkb+lA==",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "dependencies": {
+ "domelementtype": "^2.0.1",
+ "domhandler": "^4.2.0",
+ "entities": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/dom-serializer/node_modules/entities": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/dom-walk": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
+ "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
+ },
+ "node_modules/domain-browser": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
+ "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.4",
+ "npm": ">=1.2"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "dependencies": {
+ "domelementtype": "^2.2.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "dependencies": {
+ "dom-serializer": "^1.0.1",
+ "domelementtype": "^2.2.0",
+ "domhandler": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/dot-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz",
+ "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==",
+ "dependencies": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "node_modules/dot-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/dot-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dottie": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
+ "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg=="
+ },
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "dependencies": {
+ "readable-stream": "^2.0.2"
+ }
+ },
+ "node_modules/duplexer2/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/duplexer2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/duplexer3": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
+ },
+ "node_modules/duplexify": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
+ "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
+ "dependencies": {
+ "end-of-stream": "^1.4.1",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1",
+ "stream-shift": "^1.0.0"
+ }
+ },
+ "node_modules/duration": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz",
+ "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==",
+ "dev": true,
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.46"
+ }
+ },
+ "node_modules/durations": {
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/durations/-/durations-3.4.2.tgz",
+ "integrity": "sha512-V/lf7y33dGaypZZetVI1eu7BmvkbC4dItq12OElLRpKuaU5JxQstV2zHwLv8P7cNbQ+KL1WD80zMCTx5dNC4dg==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/ed2curve": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz",
+ "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==",
+ "dependencies": {
+ "tweetnacl": "1.x.x"
+ }
+ },
+ "node_modules/ed2curve/node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ },
+ "node_modules/editorconfig": {
+ "version": "0.15.3",
+ "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
+ "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
+ "dependencies": {
+ "commander": "^2.19.0",
+ "lru-cache": "^4.1.5",
+ "semver": "^5.6.0",
+ "sigmund": "^1.0.1"
+ },
+ "bin": {
+ "editorconfig": "bin/editorconfig"
+ }
+ },
+ "node_modules/editorconfig/node_modules/lru-cache": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
+ "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "dependencies": {
+ "pseudomap": "^1.0.2",
+ "yallist": "^2.1.2"
+ }
+ },
+ "node_modules/editorconfig/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/editorconfig/node_modules/yallist": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ },
+ "node_modules/electron-fetch": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz",
+ "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==",
+ "dependencies": {
+ "encoding": "^0.1.13"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.4.219",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.219.tgz",
+ "integrity": "sha512-zoQJsXOUw0ZA0YxbjkmzBumAJRtr6je5JySuL/bAoFs0DuLiLJ+5FzRF7/ZayihxR2QcewlRZVm5QZdUhwjOgA=="
+ },
+ "node_modules/elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/emojis-list": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
+ "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/enabled": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
+ },
+ "node_modules/encodeurl": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
+ },
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "dependencies": {
+ "once": "^1.4.0"
+ }
+ },
+ "node_modules/enhanced-resolve": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
+ "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "memory-fs": "^0.5.0",
+ "tapable": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/enhanced-resolve/node_modules/memory-fs": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
+ "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
"dev": true,
- "engines": [
- "node >= 0.8"
- ],
+ "peer": true,
"dependencies": {
- "buffer-from": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^2.2.2",
- "typedarray": "^0.0.6"
+ "errno": "^0.1.3",
+ "readable-stream": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=4.3.0 <5.0.0 || >=5.10"
}
},
- "node_modules/concat-stream/node_modules/readable-stream": {
+ "node_modules/enhanced-resolve/node_modules/readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
+ "peer": true,
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -6099,2606 +9748,2976 @@
"util-deprecate": "~1.0.1"
}
},
- "node_modules/concat-stream/node_modules/string_decoder": {
+ "node_modules/enhanced-resolve/node_modules/string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dev": true,
+ "peer": true,
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
- "node_modules/config-chain": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz",
- "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==",
+ "node_modules/enquirer": {
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
"dependencies": {
- "ini": "^1.3.4",
- "proto-list": "~1.2.1"
+ "ansi-colors": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "node_modules/configstore": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
+ "node_modules/entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/err-code": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
+ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
+ },
+ "node_modules/errno": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
+ "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "bin": {
+ "errno": "cli.js"
+ }
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true,
+ "peer": true,
"dependencies": {
- "dot-prop": "^5.2.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "unique-string": "^2.0.0",
- "write-file-atomic": "^3.0.0",
- "xdg-basedir": "^4.0.0"
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-abstract": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/confusing-browser-globals": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
- "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==",
+ "node_modules/es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "dependencies": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.53",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
+ "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
+ "dependencies": {
+ "es6-iterator": "~2.0.3",
+ "es6-symbol": "~3.1.3",
+ "next-tick": "~1.0.0"
+ }
+ },
+ "node_modules/es6-error": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
+ "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
"dev": true
},
- "node_modules/console-browserify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz",
- "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==",
- "dev": true,
- "peer": true
+ "node_modules/es6-iterator": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
+ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.35",
+ "es6-symbol": "^3.1.1"
+ }
},
- "node_modules/constants-browserify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
- "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=",
+ "node_modules/es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
+ "node_modules/es6-promisify": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz",
+ "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/es6-symbol": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
+ "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
+ "dependencies": {
+ "d": "^1.0.1",
+ "ext": "^1.1.2"
+ }
+ },
+ "node_modules/es6-weak-map": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
+ "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "^0.10.46",
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.1"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "dependencies": {
+ "@babel/code-frame": "7.12.11",
+ "@eslint/eslintrc": "^0.4.3",
+ "@humanwhocodes/config-array": "^0.5.0",
+ "ajv": "^6.10.0",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.0.1",
+ "doctrine": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^5.1.1",
+ "eslint-utils": "^2.1.0",
+ "eslint-visitor-keys": "^2.0.0",
+ "espree": "^7.3.1",
+ "esquery": "^1.4.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "glob-parent": "^5.1.2",
+ "globals": "^13.6.0",
+ "ignore": "^4.0.6",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "js-yaml": "^3.13.1",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.0.4",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.1",
+ "progress": "^2.0.0",
+ "regexpp": "^3.1.0",
+ "semver": "^7.2.1",
+ "strip-ansi": "^6.0.0",
+ "strip-json-comments": "^3.1.0",
+ "table": "^6.0.9",
+ "text-table": "^0.2.0",
+ "v8-compile-cache": "^2.0.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-config-airbnb": {
+ "version": "18.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz",
+ "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==",
"dev": true,
- "peer": true
+ "dependencies": {
+ "eslint-config-airbnb-base": "^14.2.1",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0",
+ "eslint-plugin-import": "^2.22.1",
+ "eslint-plugin-jsx-a11y": "^6.4.1",
+ "eslint-plugin-react": "^7.21.5",
+ "eslint-plugin-react-hooks": "^4 || ^3 || ^2.3.0 || ^1.7.0"
+ }
},
- "node_modules/content-disposition": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
- "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
+ "node_modules/eslint-config-airbnb-base": {
+ "version": "14.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz",
+ "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==",
+ "dev": true,
"dependencies": {
- "safe-buffer": "5.1.2"
+ "confusing-browser-globals": "^1.0.10",
+ "object.assign": "^4.1.2",
+ "object.entries": "^1.1.2"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0",
+ "eslint-plugin-import": "^2.22.1"
}
},
- "node_modules/content-hash": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/content-hash/-/content-hash-2.5.2.tgz",
- "integrity": "sha512-FvIQKy0S1JaWV10sMsA7TRx8bpU+pqPkhbsfvOJAdjRXvYxEckAwQWGwtRjiaJfh+E0DvcWUGqcdjwMGFjsSdw==",
+ "node_modules/eslint-config-google": {
+ "version": "0.13.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.13.0.tgz",
+ "integrity": "sha512-ELgMdOIpn0CFdsQS+FuxO+Ttu4p+aLaXHv9wA9yVnzqlUGV7oN/eRRnJekk7TCur6Cu2FXX0fqfIXRBaM14lpQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "eslint": ">=5.16.0"
+ }
+ },
+ "node_modules/eslint-config-prettier": {
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-import-resolver-node": {
+ "version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "cids": "^0.7.1",
- "multicodec": "^0.5.5",
- "multihashes": "^0.4.15"
+ "debug": "^3.2.7",
+ "resolve": "^1.20.0"
}
},
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
+ "node_modules/eslint-import-resolver-node/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
+ "node_modules/eslint-module-utils": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz",
+ "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "debug": "^3.2.7",
+ "pkg-dir": "^2.0.0"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=4"
}
},
- "node_modules/convert-source-map": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
- "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
+ "node_modules/eslint-module-utils/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
+ "peer": true,
"dependencies": {
- "safe-buffer": "~5.1.1"
+ "ms": "^2.1.1"
}
},
- "node_modules/cookie": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
- "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
+ "node_modules/eslint-plugin-import": {
+ "version": "2.24.2",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz",
+ "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-includes": "^3.1.3",
+ "array.prototype.flat": "^1.2.4",
+ "debug": "^2.6.9",
+ "doctrine": "^2.1.0",
+ "eslint-import-resolver-node": "^0.3.6",
+ "eslint-module-utils": "^2.6.2",
+ "find-up": "^2.0.0",
+ "has": "^1.0.3",
+ "is-core-module": "^2.6.0",
+ "minimatch": "^3.0.4",
+ "object.values": "^1.1.4",
+ "pkg-up": "^2.0.0",
+ "read-pkg-up": "^3.0.0",
+ "resolve": "^1.20.0",
+ "tsconfig-paths": "^3.11.0"
+ },
"engines": {
- "node": ">= 0.6"
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0"
}
},
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ "node_modules/eslint-plugin-import/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ms": "2.0.0"
+ }
},
- "node_modules/cookiejar": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.3.tgz",
- "integrity": "sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ=="
+ "node_modules/eslint-plugin-import/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "node_modules/copy-concurrently": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz",
- "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
+ "node_modules/eslint-plugin-import/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/eslint-plugin-jsx-a11y": {
+ "version": "6.4.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz",
+ "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "aproba": "^1.1.1",
- "fs-write-stream-atomic": "^1.0.8",
- "iferr": "^0.1.5",
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.4",
- "run-queue": "^1.0.0"
+ "@babel/runtime": "^7.11.2",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.1",
+ "ast-types-flow": "^0.0.7",
+ "axe-core": "^4.0.2",
+ "axobject-query": "^2.2.0",
+ "damerau-levenshtein": "^1.0.6",
+ "emoji-regex": "^9.0.0",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^3.1.0",
+ "language-tags": "^1.0.5"
+ },
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7"
}
},
- "node_modules/copy-concurrently/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/eslint-plugin-react": {
+ "version": "7.25.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz",
+ "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "array-includes": "^3.1.3",
+ "array.prototype.flatmap": "^1.2.4",
+ "doctrine": "^2.1.0",
+ "estraverse": "^5.2.0",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.4.1 || ^3.0.0",
+ "minimatch": "^3.0.4",
+ "object.entries": "^1.1.4",
+ "object.fromentries": "^2.0.4",
+ "object.values": "^1.1.4",
+ "prop-types": "^15.7.2",
+ "resolve": "^2.0.0-next.3",
+ "string.prototype.matchall": "^4.0.5"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "peerDependencies": {
+ "eslint": "^3 || ^4 || ^5 || ^6 || ^7"
+ }
+ },
+ "node_modules/eslint-plugin-react-hooks": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz",
+ "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
"dev": true,
- "dependencies": {
- "minimist": "^1.2.6"
+ "peer": true,
+ "engines": {
+ "node": ">=10"
},
- "bin": {
- "mkdirp": "bin/cmd.js"
+ "peerDependencies": {
+ "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
}
},
- "node_modules/copy-concurrently/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "node_modules/eslint-plugin-react/node_modules/doctrine": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
+ "peer": true,
"dependencies": {
- "glob": "^7.1.3"
+ "esutils": "^2.0.2"
},
- "bin": {
- "rimraf": "bin.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/copy-descriptor": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
- "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=",
+ "node_modules/eslint-plugin-react/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"dev": true,
"peer": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0"
}
},
- "node_modules/core-js-pure": {
- "version": "3.17.3",
- "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz",
- "integrity": "sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==",
+ "node_modules/eslint-plugin-react/node_modules/resolve": {
+ "version": "2.0.0-next.3",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
+ "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
"dev": true,
- "hasInstallScript": true,
"peer": true,
+ "dependencies": {
+ "is-core-module": "^2.2.0",
+ "path-parse": "^1.0.6"
+ },
"funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "node_modules/cors": {
- "version": "2.8.5",
- "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz",
- "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==",
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dependencies": {
- "object-assign": "^4",
- "vary": "^1"
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">=8.0.0"
}
},
- "node_modules/crc-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
- "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
+ "node_modules/eslint-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dependencies": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.1.0"
- },
- "bin": {
- "crc32": "bin/crc32.njs"
+ "eslint-visitor-keys": "^1.1.0"
},
"engines": {
- "node": ">=0.8"
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
}
},
- "node_modules/create-ecdh": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz",
- "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
- "dependencies": {
- "bn.js": "^4.1.0",
- "elliptic": "^6.5.3"
+ "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/create-hash": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz",
- "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
- "dependencies": {
- "cipher-base": "^1.0.1",
- "inherits": "^2.0.1",
- "md5.js": "^1.3.4",
- "ripemd160": "^2.0.1",
- "sha.js": "^2.4.0"
+ "node_modules/eslint-visitor-keys": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "engines": {
+ "node": ">=10"
}
},
- "node_modules/create-hmac": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz",
- "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
- "dependencies": {
- "cipher-base": "^1.0.3",
- "create-hash": "^1.1.0",
- "inherits": "^2.0.1",
- "ripemd160": "^2.0.0",
- "safe-buffer": "^5.0.1",
- "sha.js": "^2.4.8"
+ "node_modules/esm": {
+ "version": "3.2.25",
+ "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
+ "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/cross-fetch": {
- "version": "3.1.5",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
- "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
+ "node_modules/espree": {
+ "version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
"dependencies": {
- "node-fetch": "2.6.7"
+ "acorn": "^7.4.0",
+ "acorn-jsx": "^5.3.1",
+ "eslint-visitor-keys": "^1.3.0"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/cross-fetch/node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
+ "node_modules/espree/node_modules/eslint-visitor-keys": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
+ "node": ">=4"
}
},
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
},
"engines": {
- "node": ">= 8"
+ "node": ">=4"
}
},
- "node_modules/crypto-browserify": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz",
- "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
+ "node_modules/esquery": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
"dependencies": {
- "browserify-cipher": "^1.0.0",
- "browserify-sign": "^4.0.0",
- "create-ecdh": "^4.0.0",
- "create-hash": "^1.1.0",
- "create-hmac": "^1.1.0",
- "diffie-hellman": "^5.0.0",
- "inherits": "^2.0.1",
- "pbkdf2": "^3.0.3",
- "public-encrypt": "^4.0.0",
- "randombytes": "^2.0.0",
- "randomfill": "^1.0.3"
+ "estraverse": "^5.1.0"
},
"engines": {
- "node": "*"
+ "node": ">=0.10"
}
},
- "node_modules/crypto-js": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
- "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
- },
- "node_modules/crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true,
+ "node_modules/esquery/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"engines": {
- "node": ">=8"
- }
- },
- "node_modules/cyclist": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
- "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=",
- "dev": true
- },
- "node_modules/d": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
- "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
- "dependencies": {
- "es5-ext": "^0.10.50",
- "type": "^1.0.1"
+ "node": ">=4.0"
}
},
- "node_modules/damerau-levenshtein": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz",
- "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==",
- "dev": true,
- "peer": true
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dependencies": {
- "assert-plus": "^1.0.0"
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/data-uri-to-buffer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz",
- "integrity": "sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og==",
- "engines": {
- "node": ">= 6"
+ "node": ">=4.0"
}
},
- "node_modules/dateformat": {
- "version": "4.6.3",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
- "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
+ "node_modules/esrecurse/node_modules/estraverse": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
+ "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
"engines": {
- "node": "*"
+ "node": ">=4.0"
}
},
- "node_modules/debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dependencies": {
- "ms": "2.1.2"
- },
+ "node_modules/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
+ "node": ">=4.0"
}
},
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/decode-uri-component": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
"engines": {
- "node": ">=0.10"
+ "node": ">= 0.6"
}
},
- "node_modules/decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "node_modules/eth-block-tracker": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz",
+ "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==",
"dependencies": {
- "mimic-response": "^1.0.0"
- },
- "engines": {
- "node": ">=4"
+ "@babel/plugin-transform-runtime": "^7.5.5",
+ "@babel/runtime": "^7.5.5",
+ "eth-query": "^2.1.0",
+ "json-rpc-random-id": "^1.0.1",
+ "pify": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
}
},
- "node_modules/deeks": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/deeks/-/deeks-2.5.1.tgz",
- "integrity": "sha512-fqrBeUz7f1UqaXDRzVB5RG2EfPk15HJRrb2pMZj8mLlSTtz4tRPsK5leFOskoHFPuyZ6+7aRM9j657fvXLkJ7Q==",
- "engines": {
- "node": ">= 12"
+ "node_modules/eth-ens-namehash": {
+ "version": "2.0.8",
+ "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
+ "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
+ "dependencies": {
+ "idna-uts46-hx": "^2.3.1",
+ "js-sha3": "^0.5.7"
}
},
- "node_modules/deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "dev": true,
+ "node_modules/eth-ens-namehash/node_modules/js-sha3": {
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
+ "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g=="
+ },
+ "node_modules/eth-json-rpc-errors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz",
+ "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==",
+ "deprecated": "Package renamed: https://www.npmjs.com/package/eth-rpc-errors",
"dependencies": {
- "type-detect": "^4.0.0"
- },
- "engines": {
- "node": ">=0.12"
+ "fast-safe-stringify": "^2.0.6"
}
},
- "node_modules/deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
- "engines": {
- "node": ">=4.0.0"
+ "node_modules/eth-lib": {
+ "version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
+ "dependencies": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
+ "xhr-request-promise": "^0.1.2"
}
},
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="
+ "node_modules/eth-lib/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/default-gateway": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz",
- "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==",
+ "node_modules/eth-query": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz",
+ "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==",
"dependencies": {
- "execa": "^5.0.0"
- },
- "engines": {
- "node": ">= 10"
+ "json-rpc-random-id": "^1.0.0",
+ "xtend": "^4.0.1"
}
},
- "node_modules/default-require-extensions": {
+ "node_modules/eth-rpc-errors": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz",
- "integrity": "sha512-ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz",
+ "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==",
"dependencies": {
- "strip-bom": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/default-require-extensions/node_modules/strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "fast-safe-stringify": "^2.0.6"
}
},
- "node_modules/defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "node_modules/eth-sig-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz",
+ "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==",
+ "deprecated": "Deprecated in favor of '@metamask/eth-sig-util'",
"dependencies": {
- "clone": "^1.0.2"
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.3",
+ "tweetnacl-util": "^0.15.0"
}
},
- "node_modules/defer-to-connect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ "node_modules/eth-sig-util/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "node_modules/eth-sig-util/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "object-keys": "^1.0.12"
- },
- "engines": {
- "node": ">= 0.4"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/define-property": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
- "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=",
- "dev": true,
- "peer": true,
+ "node_modules/eth-sig-util/node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ },
+ "node_modules/ethereum-bloom-filters": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz",
+ "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==",
"dependencies": {
- "is-descriptor": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "js-sha3": "^0.8.0"
}
},
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "engines": {
- "node": ">=0.4.0"
- }
+ "node_modules/ethereum-common": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz",
+ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA=="
},
- "node_modules/denque": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/denque/-/denque-2.0.1.tgz",
- "integrity": "sha512-tfiWc6BQLXNLpNiR5iGd0Ocu3P3VpxfzFiqubLgMfhfOw9WyvgJBd46CClNn9k3qfbjvT//0cf7AlYRX/OslMQ==",
- "engines": {
- "node": ">=0.10"
+ "node_modules/ethereum-cryptography": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
+ "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
+ "dependencies": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
}
},
- "node_modules/depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
- "engines": {
- "node": ">= 0.6"
+ "node_modules/ethereum-protocol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz",
+ "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg=="
+ },
+ "node_modules/ethereumjs-abi": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "dependencies": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/des.js": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz",
- "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==",
+ "node_modules/ethereumjs-abi/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"dependencies": {
- "inherits": "^2.0.1",
- "minimalistic-assert": "^1.0.0"
+ "@types/node": "*"
}
},
- "node_modules/destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "node_modules/ethereumjs-abi/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
- "node_modules/dicer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
- "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
+ "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"dependencies": {
- "streamsearch": "0.1.2"
- },
- "engines": {
- "node": ">=4.5.0"
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
+ "node_modules/ethereumjs-account": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
+ "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
+ "dependencies": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/diffie-hellman": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
- "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
+ "node_modules/ethereumjs-account/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/ethereumjs-account/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "bn.js": "^4.1.0",
- "miller-rabin": "^4.0.0",
- "randombytes": "^2.0.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/dkg.js": {
- "version": "6.0.0-beta.2.7",
- "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.0.0-beta.2.7.tgz",
- "integrity": "sha512-L8eu3OdODyfJw6+MVlsHGPEBk1SWh8fRhClxKboO3e/xdi6WqdL8Y2foOEHvPk7IssRu40Fd11WWUb6pqiHpuw==",
- "dev": true,
+ "node_modules/ethereumjs-block": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz",
+ "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==",
+ "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.",
"dependencies": {
- "axios": "^0.26.1",
- "crypto-js": "^4.1.1",
- "form-data": "^4.0.0",
- "loglevel": "^1.8.0",
- "merkle-tools": "^1.4.1",
- "n3": "^1.12.2",
- "sparqljs": "^3.5.1",
- "sync-request": "^6.1.0",
- "uglifyjs-webpack-plugin": "^2.2.0",
- "uuid": "^8.3.2"
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/dkg.js/node_modules/axios": {
- "version": "0.26.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
- "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
- "dev": true,
+ "node_modules/ethereumjs-block/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dependencies": {
- "follow-redirects": "^1.14.8"
+ "lodash": "^4.17.14"
}
},
- "node_modules/dns-over-http-resolver": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.3.tgz",
- "integrity": "sha512-miDiVSI6KSNbi4SVifzO/reD8rMnxgrlnkrlkugOLQpWQTe2qMdHsZp5DmfKjxNE+/T3VAAYLQUZMv9SMr6+AA==",
+ "node_modules/ethereumjs-block/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "debug": "^4.3.1",
- "native-fetch": "^3.0.0",
- "receptacle": "^1.3.2"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/doc-path": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/doc-path/-/doc-path-3.0.2.tgz",
- "integrity": "sha512-VRlA2OKSjTbHWj6wmSanxJ338fE/YN8pqmZ0FIWK5JWkIJMFRc4KmD35JtOrnjvVG0WrzOtDDNHx1lN1tkb+lA==",
- "engines": {
- "node": ">=12"
+ "node_modules/ethereumjs-common": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz",
+ "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA==",
+ "deprecated": "New package name format for new versions: @ethereumjs/common. Please update."
+ },
+ "node_modules/ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.",
+ "dependencies": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
}
},
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "node_modules/ethereumjs-tx/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/ethereumjs-tx/node_modules/ethereum-common": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+ "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ=="
+ },
+ "node_modules/ethereumjs-tx/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/dom-serializer": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
- "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
+ "node_modules/ethereumjs-util": {
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"dependencies": {
- "domelementtype": "^2.0.1",
- "domhandler": "^4.2.0",
- "entities": "^2.0.0"
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.1.2",
+ "create-hash": "^1.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "rlp": "^2.2.4"
},
- "funding": {
- "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ "engines": {
+ "node": ">=10.0.0"
}
},
- "node_modules/dom-serializer/node_modules/entities": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
- "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
+ "node_modules/ethereumjs-vm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz",
+ "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==",
+ "deprecated": "New package name format for new versions: @ethereumjs/vm. Please update.",
+ "dependencies": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/dom-walk": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz",
- "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
- },
- "node_modules/domain-browser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
- "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.4",
- "npm": ">=1.2"
+ "node_modules/ethereumjs-vm/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "dependencies": {
+ "@types/node": "*"
}
},
- "node_modules/domelementtype": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
- "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/fb55"
- }
- ]
- },
- "node_modules/domhandler": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
- "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
+ "node_modules/ethereumjs-vm/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dependencies": {
- "domelementtype": "^2.2.0"
- },
- "engines": {
- "node": ">= 4"
- },
- "funding": {
- "url": "https://github.com/fb55/domhandler?sponsor=1"
+ "lodash": "^4.17.14"
}
},
- "node_modules/domutils": {
- "version": "2.8.0",
- "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
- "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
+ "node_modules/ethereumjs-vm/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/ethereumjs-vm/node_modules/ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "deprecated": "New package name format for new versions: @ethereumjs/block. Please update.",
"dependencies": {
- "dom-serializer": "^1.0.1",
- "domelementtype": "^2.2.0",
- "domhandler": "^4.2.0"
- },
- "funding": {
- "url": "https://github.com/fb55/domutils?sponsor=1"
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
}
},
- "node_modules/dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
+ "node_modules/ethereumjs-vm/node_modules/ethereumjs-block/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
"dependencies": {
- "is-obj": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/dotenv": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
- "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
- "engines": {
- "node": ">=10"
+ "node_modules/ethereumjs-vm/node_modules/ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "deprecated": "New package name format for new versions: @ethereumjs/tx. Please update.",
+ "dependencies": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
}
},
- "node_modules/dottie": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.2.tgz",
- "integrity": "sha512-fmrwR04lsniq/uSr8yikThDTrM7epXHBAAjH9TbeH3rEA8tdCO7mRzB9hdmdGyJCxF8KERo9CITcm3kGuoyMhg=="
- },
- "node_modules/duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
+ "node_modules/ethereumjs-vm/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
"dependencies": {
- "readable-stream": "^2.0.2"
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/duplexer2/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "node_modules/ethereumjs-wallet": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz",
+ "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "aes-js": "^3.1.2",
+ "bs58check": "^2.1.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereumjs-util": "^7.1.2",
+ "randombytes": "^2.1.0",
+ "scrypt-js": "^3.0.1",
+ "utf8": "^3.0.0",
+ "uuid": "^8.3.2"
}
},
- "node_modules/duplexer2/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/ethjs-unit": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
+ "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "bn.js": "4.11.6",
+ "number-to-bn": "1.7.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ "node_modules/ethjs-unit/node_modules/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
},
- "node_modules/duplexify": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz",
- "integrity": "sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==",
+ "node_modules/ethjs-util": {
+ "version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
+ "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
"dependencies": {
- "end-of-stream": "^1.4.1",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1",
- "stream-shift": "^1.0.0"
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ },
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/duration": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/duration/-/duration-0.2.2.tgz",
- "integrity": "sha512-06kgtea+bGreF5eKYgI/36A6pLXggY7oR4p1pq4SmdFBn1ReOL5D8RhG64VrqfTTKNucqqtBAwEj8aB88mcqrg==",
- "dev": true,
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
"dependencies": {
"d": "1",
- "es5-ext": "~0.10.46"
+ "es5-ext": "~0.10.14"
}
},
- "node_modules/durations": {
- "version": "3.4.2",
- "resolved": "https://registry.npmjs.org/durations/-/durations-3.4.2.tgz",
- "integrity": "sha512-V/lf7y33dGaypZZetVI1eu7BmvkbC4dItq12OElLRpKuaU5JxQstV2zHwLv8P7cNbQ+KL1WD80zMCTx5dNC4dg==",
- "dev": true,
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
+ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/eastasianwidth": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
- "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
- "dev": true
+ "node_modules/eventemitter3": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
+ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
},
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+ "node_modules/events": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
+ "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "engines": {
+ "node": ">=0.8.x"
+ }
+ },
+ "node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
+ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
"dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
}
},
- "node_modules/editorconfig": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
- "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==",
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dependencies": {
- "commander": "^2.19.0",
- "lru-cache": "^4.1.5",
- "semver": "^5.6.0",
- "sigmund": "^1.0.1"
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
},
- "bin": {
- "editorconfig": "bin/editorconfig"
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
}
},
- "node_modules/editorconfig/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
+ "node_modules/expand-brackets": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
+ "dev": true,
+ "peer": true,
"dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
+ "debug": "^2.3.3",
+ "define-property": "^0.2.5",
+ "extend-shallow": "^2.0.1",
+ "posix-character-classes": "^0.1.0",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/editorconfig/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "bin": {
- "semver": "bin/semver"
+ "node_modules/expand-brackets/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "ms": "2.0.0"
}
},
- "node_modules/editorconfig/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ "node_modules/expand-brackets/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "dev": true,
+ "peer": true
},
- "node_modules/electron-fetch": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.4.tgz",
- "integrity": "sha512-+fBLXEy4CJWQ5bz8dyaeSG1hD6JJ15kBZyj3eh24pIVrd3hLM47H/umffrdQfS6GZ0falF0g9JT9f3Rs6AVUhw==",
+ "node_modules/express": {
+ "version": "4.17.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
+ "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"dependencies": {
- "encoding": "^0.1.13"
+ "accepts": "~1.3.7",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.19.0",
+ "content-disposition": "0.5.3",
+ "content-type": "~1.0.4",
+ "cookie": "0.4.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "~1.1.2",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "~1.1.2",
+ "fresh": "0.5.2",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.5",
+ "qs": "6.7.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.1.2",
+ "send": "0.17.1",
+ "serve-static": "1.14.1",
+ "setprototypeof": "1.1.1",
+ "statuses": "~1.5.0",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
},
"engines": {
- "node": ">=6"
+ "node": ">= 0.10.0"
}
},
- "node_modules/electron-to-chromium": {
- "version": "1.3.840",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz",
- "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==",
- "dev": true
- },
- "node_modules/elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "node_modules/express-fileupload": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.4.0.tgz",
+ "integrity": "sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ==",
"dependencies": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
+ "busboy": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=12.0.0"
}
},
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/emojis-list": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz",
- "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
- "dev": true,
- "peer": true,
+ "node_modules/express-ipfilter": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/express-ipfilter/-/express-ipfilter-1.2.0.tgz",
+ "integrity": "sha512-nPXKMuhqVjX7+Vny4XsrpdqlX4YAGcanE0gh5xzpfmNTsINGAgPnpk67kb0No3p1m4vGQQLU6hdaXRxsuGNlTA==",
+ "dependencies": {
+ "ip": "~1.1.0",
+ "lodash": "^4.17.11",
+ "proxy-addr": "^2.0.4",
+ "range_check": "^1.2.0"
+ },
"engines": {
- "node": ">= 4"
+ "node": ">=8.9.0"
}
},
- "node_modules/enabled": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
- "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
+ "node_modules/express-rate-limit": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.3.0.tgz",
+ "integrity": "sha512-932Io1VGKjM3ppi7xW9sb1J5nVkEJSUiOtHw2oE+JyHks1e+AXuOBSXbJKM0mcXwEnW1TibJibQ455Ow1YFjfg==",
"engines": {
- "node": ">= 0.8"
+ "node": ">= 12.9.0"
+ },
+ "peerDependencies": {
+ "express": "^4"
}
},
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "node_modules/express-slow-down": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/express-slow-down/-/express-slow-down-1.4.0.tgz",
+ "integrity": "sha512-Tw5aa0plPj2STiuc2SyMw2VSjMvBgLGQHHoPhkIL4iPQcFZDueWBaiLxFZ3SrwrJhiu3b3sHNcsP6lXeWnbwAw==",
"dependencies": {
- "iconv-lite": "^0.6.2"
+ "defaults": "^1.0.3"
+ }
+ },
+ "node_modules/express/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/express/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/express/node_modules/qs": {
+ "version": "6.7.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
+ "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "engines": {
+ "node": ">=0.6"
}
},
- "node_modules/end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
+ "node_modules/ext": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
+ "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
"dependencies": {
- "once": "^1.4.0"
+ "type": "^2.5.0"
}
},
- "node_modules/enhanced-resolve": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
- "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
+ "node_modules/ext/node_modules/type": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
+ "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "node_modules/extend-shallow": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
"dev": true,
"peer": true,
"dependencies": {
- "graceful-fs": "^4.1.2",
- "memory-fs": "^0.5.0",
- "tapable": "^1.0.0"
+ "is-extendable": "^0.1.0"
},
"engines": {
- "node": ">=6.9.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/enhanced-resolve/node_modules/memory-fs": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz",
- "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==",
+ "node_modules/extglob": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dev": true,
"peer": true,
"dependencies": {
- "errno": "^0.1.3",
- "readable-stream": "^2.0.1"
+ "array-unique": "^0.3.2",
+ "define-property": "^1.0.0",
+ "expand-brackets": "^2.1.4",
+ "extend-shallow": "^2.0.1",
+ "fragment-cache": "^0.2.1",
+ "regex-not": "^1.0.0",
+ "snapdragon": "^0.8.1",
+ "to-regex": "^3.0.1"
},
"engines": {
- "node": ">=4.3.0 <5.0.0 || >=5.10"
+ "node": ">=0.10.0"
}
},
- "node_modules/enhanced-resolve/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "node_modules/extglob/node_modules/define-property": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
"dev": true,
"peer": true,
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "is-descriptor": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/enhanced-resolve/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "node_modules/extglob/node_modules/is-accessor-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dev": true,
"peer": true,
"dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/enquirer": {
- "version": "2.3.6",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
- "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
- "dependencies": {
- "ansi-colors": "^4.1.1"
+ "kind-of": "^6.0.0"
},
"engines": {
- "node": ">=8.6"
+ "node": ">=0.10.0"
}
},
- "node_modules/entities": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
- "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
- "engines": {
- "node": ">=0.12"
+ "node_modules/extglob/node_modules/is-data-descriptor": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "kind-of": "^6.0.0"
},
- "funding": {
- "url": "https://github.com/fb55/entities?sponsor=1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/err-code": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz",
- "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA=="
- },
- "node_modules/errno": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
- "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
+ "node_modules/extglob/node_modules/is-descriptor": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dev": true,
+ "peer": true,
"dependencies": {
- "prr": "~1.0.1"
+ "is-accessor-descriptor": "^1.0.0",
+ "is-data-descriptor": "^1.0.0",
+ "kind-of": "^6.0.2"
},
- "bin": {
- "errno": "cli.js"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "node_modules/extglob/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"dev": true,
"peer": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/es-abstract": {
- "version": "1.18.6",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz",
- "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==",
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "engines": [
+ "node >=0.6.0"
+ ]
+ },
+ "node_modules/fake-merkle-patricia-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz",
+ "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==",
"dependencies": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "get-symbol-description": "^1.0.0",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "internal-slot": "^1.0.3",
- "is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.4",
- "is-string": "^1.0.7",
- "object-inspect": "^1.11.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "checkpoint-store": "^1.1.0"
}
},
- "node_modules/es-to-primitive": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
- "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "node_modules/faker": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz",
+ "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g=="
+ },
+ "node_modules/fast-check": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz",
+ "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==",
"dependencies": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
+ "pure-rand": "^5.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
}
},
- "node_modules/es5-ext": {
- "version": "0.10.53",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz",
- "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==",
- "dependencies": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.3",
- "next-tick": "~1.0.0"
- }
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
- "node_modules/es6-error": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz",
- "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==",
- "dev": true
+ "node_modules/fast-fifo": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz",
+ "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ=="
},
- "node_modules/es6-iterator": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
- "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
- "dependencies": {
- "d": "1",
- "es5-ext": "^0.10.35",
- "es6-symbol": "^3.1.1"
- }
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
},
- "node_modules/es6-promisify": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz",
- "integrity": "sha512-ginqzK3J90Rd4/Yz7qRrqUeIpe3TwSXTPPZtPne7tGBPeAaQiU8qt4fpKApnxHcq1AwtUdHVg5P77x/yrggG8Q==",
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ },
+ "node_modules/fast-redact": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz",
+ "integrity": "sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A==",
"engines": {
"node": ">=6"
}
},
- "node_modules/es6-symbol": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz",
- "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
- "dependencies": {
- "d": "^1.0.1",
- "ext": "^1.1.2"
- }
+ "node_modules/fast-safe-stringify": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
},
- "node_modules/es6-weak-map": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
- "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
+ "node_modules/fast-sort": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.1.1.tgz",
+ "integrity": "sha512-EA3PVIYj8uyyJc2Mma7GHjMrE74N/ClKkBj5gVUmY+8JePrc/ognCk4bhszVGYazu9Qk2aUTHnBF38QDSHcjkg=="
+ },
+ "node_modules/fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
"dependencies": {
- "d": "1",
- "es5-ext": "^0.10.46",
- "es6-iterator": "^2.0.3",
- "es6-symbol": "^3.1.1"
+ "reusify": "^1.0.4"
}
},
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/fecha": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
- "node_modules/escape-goat": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
- "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
- "dev": true,
+ "node_modules/fetch-blob": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz",
+ "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==",
"engines": {
- "node": ">=8"
+ "node": "^10.17.0 || >=12.3.0"
+ },
+ "peerDependenciesMeta": {
+ "domexception": {
+ "optional": true
+ }
}
},
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "node_modules/fetch-ponyfill": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz",
+ "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==",
+ "dependencies": {
+ "node-fetch": "~1.7.1"
+ }
},
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "node_modules/fetch-ponyfill/node_modules/is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
- "node_modules/eslint": {
- "version": "7.32.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
- "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
+ "node_modules/fetch-ponyfill/node_modules/node-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"dependencies": {
- "@babel/code-frame": "7.12.11",
- "@eslint/eslintrc": "^0.4.3",
- "@humanwhocodes/config-array": "^0.5.0",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.0.1",
- "doctrine": "^3.0.0",
- "enquirer": "^2.3.5",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^5.1.1",
- "eslint-utils": "^2.1.0",
- "eslint-visitor-keys": "^2.0.0",
- "espree": "^7.3.1",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "functional-red-black-tree": "^1.0.1",
- "glob-parent": "^5.1.2",
- "globals": "^13.6.0",
- "ignore": "^4.0.6",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "js-yaml": "^3.13.1",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.0.4",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "progress": "^2.0.0",
- "regexpp": "^3.1.0",
- "semver": "^7.2.1",
- "strip-ansi": "^6.0.0",
- "strip-json-comments": "^3.1.0",
- "table": "^6.0.9",
- "text-table": "^0.2.0",
- "v8-compile-cache": "^2.0.3"
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ },
+ "node_modules/fetch-sparql-endpoint": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/fetch-sparql-endpoint/-/fetch-sparql-endpoint-2.4.0.tgz",
+ "integrity": "sha512-7SLCQFF1N8dOhnJBJL2engSRYKZxD6oCsQ+rGQa/AwEfHpYqmJZVkyLWXC/pkV8vsZ1vkvYj8x89x2UpthQjdA==",
+ "dependencies": {
+ "@rdfjs/types": "*",
+ "@types/readable-stream": "^2.3.11",
+ "@types/sparqljs": "^3.1.3",
+ "abort-controller": "^3.0.0",
+ "cross-fetch": "^3.0.6",
+ "is-stream": "^2.0.0",
+ "minimist": "^1.2.0",
+ "n3": "^1.6.3",
+ "rdf-string": "^1.6.0",
+ "readable-web-to-node-stream": "^3.0.2",
+ "sparqljs": "^3.1.2",
+ "sparqljson-parse": "^1.7.0",
+ "sparqlxml-parse": "^1.5.0",
+ "stream-to-string": "^1.1.0"
},
"bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
+ "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js"
}
},
- "node_modules/eslint-config-airbnb": {
- "version": "18.2.1",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.1.tgz",
- "integrity": "sha512-glZNDEZ36VdlZWoxn/bUR1r/sdFKPd1mHPbqUtkctgNG4yT2DLLtJ3D+yCV+jzZCc2V1nBVkmdknOJBZ5Hc0fg==",
+ "node_modules/figgy-pudding": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
+ "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
+ "dev": true
+ },
+ "node_modules/figures": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
+ "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
"dev": true,
"dependencies": {
- "eslint-config-airbnb-base": "^14.2.1",
- "object.assign": "^4.1.2",
- "object.entries": "^1.1.2"
+ "escape-string-regexp": "^1.0.5"
},
"engines": {
- "node": ">= 6"
+ "node": ">=8"
},
- "peerDependencies": {
- "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0",
- "eslint-plugin-import": "^2.22.1",
- "eslint-plugin-jsx-a11y": "^6.4.1",
- "eslint-plugin-react": "^7.21.5",
- "eslint-plugin-react-hooks": "^4 || ^3 || ^2.3.0 || ^1.7.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-config-airbnb-base": {
- "version": "14.2.1",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz",
- "integrity": "sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA==",
+ "node_modules/figures/node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dependencies": {
- "confusing-browser-globals": "^1.0.10",
- "object.assign": "^4.1.2",
- "object.entries": "^1.1.2"
+ "flat-cache": "^3.0.4"
},
"engines": {
- "node": ">= 6"
- },
- "peerDependencies": {
- "eslint": "^5.16.0 || ^6.8.0 || ^7.2.0",
- "eslint-plugin-import": "^2.22.1"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/eslint-config-google": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.13.0.tgz",
- "integrity": "sha512-ELgMdOIpn0CFdsQS+FuxO+Ttu4p+aLaXHv9wA9yVnzqlUGV7oN/eRRnJekk7TCur6Cu2FXX0fqfIXRBaM14lpQ==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
},
- "peerDependencies": {
- "eslint": ">=5.16.0"
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/eslint-config-prettier": {
- "version": "8.5.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
- "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
- "dev": true,
- "bin": {
- "eslint-config-prettier": "bin/cli.js"
+ "node_modules/finalhandler": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
+ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "~2.3.0",
+ "parseurl": "~1.3.3",
+ "statuses": "~1.5.0",
+ "unpipe": "~1.0.0"
},
- "peerDependencies": {
- "eslint": ">=7.0.0"
+ "engines": {
+ "node": ">= 0.8"
}
},
- "node_modules/eslint-import-resolver-node": {
- "version": "0.3.6",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
- "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
- "dev": true,
- "peer": true,
+ "node_modules/finalhandler/node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
- "debug": "^3.2.7",
- "resolve": "^1.20.0"
+ "ms": "2.0.0"
}
},
- "node_modules/eslint-import-resolver-node/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/finalhandler/node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
+ "node_modules/find-cache-dir": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
- "peer": true,
"dependencies": {
- "ms": "^2.1.1"
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.2",
+ "pkg-dir": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
- "node_modules/eslint-module-utils": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz",
- "integrity": "sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q==",
+ "node_modules/find-cache-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
"dev": true,
- "peer": true,
"dependencies": {
- "debug": "^3.2.7",
- "pkg-dir": "^2.0.0"
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/eslint-module-utils/node_modules/debug": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
- "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "node_modules/find-cache-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
"dev": true,
- "peer": true,
"dependencies": {
- "ms": "^2.1.1"
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/eslint-plugin-import": {
- "version": "2.24.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz",
- "integrity": "sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q==",
+ "node_modules/find-cache-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"dev": true,
- "peer": true,
"dependencies": {
- "array-includes": "^3.1.3",
- "array.prototype.flat": "^1.2.4",
- "debug": "^2.6.9",
- "doctrine": "^2.1.0",
- "eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.6.2",
- "find-up": "^2.0.0",
- "has": "^1.0.3",
- "is-core-module": "^2.6.0",
- "minimatch": "^3.0.4",
- "object.values": "^1.1.4",
- "pkg-up": "^2.0.0",
- "read-pkg-up": "^3.0.0",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.11.0"
+ "p-try": "^2.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=6"
},
- "peerDependencies": {
- "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/eslint-plugin-import/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/find-cache-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
"dev": true,
- "peer": true,
"dependencies": {
- "ms": "2.0.0"
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/eslint-plugin-import/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
+ "node_modules/find-cache-dir/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true,
- "peer": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/eslint-plugin-import/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "node_modules/find-cache-dir/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"dev": true,
- "peer": true
+ "engines": {
+ "node": ">=8"
+ }
},
- "node_modules/eslint-plugin-jsx-a11y": {
- "version": "6.4.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.4.1.tgz",
- "integrity": "sha512-0rGPJBbwHoGNPU73/QCLP/vveMlM1b1Z9PponxO87jfr6tuH5ligXbDT6nHSSzBC8ovX2Z+BQu7Bk5D/Xgq9zg==",
+ "node_modules/find-cache-dir/node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "peer": true,
"dependencies": {
- "@babel/runtime": "^7.11.2",
- "aria-query": "^4.2.2",
- "array-includes": "^3.1.1",
- "ast-types-flow": "^0.0.7",
- "axe-core": "^4.0.2",
- "axobject-query": "^2.2.0",
- "damerau-levenshtein": "^1.0.6",
- "emoji-regex": "^9.0.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^3.1.0",
- "language-tags": "^1.0.5"
+ "find-up": "^4.0.0"
},
"engines": {
- "node": ">=4.0"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7"
+ "node": ">=8"
}
},
- "node_modules/eslint-plugin-jsx-a11y/node_modules/emoji-regex": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
- "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
- "dev": true,
- "peer": true
- },
- "node_modules/eslint-plugin-react": {
- "version": "7.25.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.25.1.tgz",
- "integrity": "sha512-P4j9K1dHoFXxDNP05AtixcJEvIT6ht8FhYKsrkY0MPCPaUMYijhpWwNiRDZVtA8KFuZOkGSeft6QwH8KuVpJug==",
+ "node_modules/find-up": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
"dev": true,
"peer": true,
"dependencies": {
- "array-includes": "^3.1.3",
- "array.prototype.flatmap": "^1.2.4",
- "doctrine": "^2.1.0",
- "estraverse": "^5.2.0",
- "has": "^1.0.3",
- "jsx-ast-utils": "^2.4.1 || ^3.0.0",
- "minimatch": "^3.0.4",
- "object.entries": "^1.1.4",
- "object.fromentries": "^2.0.4",
- "object.values": "^1.1.4",
- "prop-types": "^15.7.2",
- "resolve": "^2.0.0-next.3",
- "string.prototype.matchall": "^4.0.5"
+ "locate-path": "^2.0.0"
},
"engines": {
"node": ">=4"
- },
- "peerDependencies": {
- "eslint": "^3 || ^4 || ^5 || ^6 || ^7"
}
},
- "node_modules/eslint-plugin-react-hooks": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz",
- "integrity": "sha512-623WEiZJqxR7VdxFCKLI6d6LLpwJkGPYKODnkH3D7WpOG5KM8yWueBd8TLsNAetEJNF5iJmolaAKO3F8yzyVBQ==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
+ "bin": {
+ "flat": "cli.js"
}
},
- "node_modules/eslint-plugin-react/node_modules/doctrine": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
- "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
- "dev": true,
- "peer": true,
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
"dependencies": {
- "esutils": "^2.0.2"
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/eslint-plugin-react/node_modules/estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "node_modules/flatstr": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
+ "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
+ },
+ "node_modules/flatted": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
+ "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
+ },
+ "node_modules/flush-write-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
+ "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
"dev": true,
- "peer": true,
- "engines": {
- "node": ">=4.0"
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.3.6"
}
},
- "node_modules/eslint-plugin-react/node_modules/resolve": {
- "version": "2.0.0-next.3",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz",
- "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==",
+ "node_modules/flush-write-stream/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
- "peer": true,
"dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "node_modules/flush-write-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
"dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
+ "node_modules/fn.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
+ },
+ "node_modules/follow-redirects": {
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
"engines": {
- "node": ">=6"
+ "node": ">=4.0"
},
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
}
},
- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "engines": {
- "node": ">=4"
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
}
},
- "node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
+ "dev": true,
+ "peer": true,
"engines": {
- "node": ">=10"
+ "node": ">=0.10.0"
}
},
- "node_modules/esm": {
- "version": "3.2.25",
- "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
- "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
- "engines": {
- "node": ">=6"
- }
+ "node_modules/foreach": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz",
+ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg=="
},
- "node_modules/espree": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
- "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
+ "node_modules/foreground-child": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
+ "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
+ "dev": true,
"dependencies": {
- "acorn": "^7.4.0",
- "acorn-jsx": "^5.3.1",
- "eslint-visitor-keys": "^1.3.0"
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^3.0.2"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/espree/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "engines": {
- "node": ">=4"
+ "node": ">=8.0.0"
}
},
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
"engines": {
- "node": ">=4"
+ "node": "*"
}
},
- "node_modules/esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
+ "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
"dependencies": {
- "estraverse": "^5.1.0"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=0.10"
+ "node": ">= 6"
}
},
- "node_modules/esquery/node_modules/estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
- "engines": {
- "node": ">=4.0"
- }
+ "node_modules/form-data-encoder": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
+ "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg=="
},
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "node_modules/formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
"dependencies": {
- "estraverse": "^5.2.0"
+ "fetch-blob": "^3.1.2"
},
"engines": {
- "node": ">=4.0"
+ "node": ">=12.20.0"
}
},
- "node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz",
- "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==",
+ "node_modules/formdata-polyfill/node_modules/fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "paypal",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "dependencies": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ },
"engines": {
- "node": ">=4.0"
+ "node": "^12.20 || >= 14.13"
}
},
- "node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
- "node": ">=4.0"
+ "node": ">= 0.6"
}
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "node_modules/fragment-cache": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "map-cache": "^0.2.2"
+ },
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
"engines": {
"node": ">= 0.6"
}
},
- "node_modules/eth-ens-namehash": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
- "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=",
+ "node_modules/from2": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "dev": true,
"dependencies": {
- "idna-uts46-hx": "^2.3.1",
- "js-sha3": "^0.5.7"
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
}
},
- "node_modules/eth-ens-namehash/node_modules/js-sha3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
- },
- "node_modules/eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "node_modules/from2/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "xhr-request-promise": "^0.1.2"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/ethereum-bloom-filters": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/ethereum-bloom-filters/-/ethereum-bloom-filters-1.0.10.tgz",
- "integrity": "sha512-rxJ5OFN3RwjQxDcFP2Z5+Q9ho4eIdEmSc2ht0fCu8Se9nbXjZ7/031uXoUYJ87KHCOdVeiUuwSnoS7hmYAGVHA==",
+ "node_modules/from2/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
"dependencies": {
- "js-sha3": "^0.8.0"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/ethereum-cryptography": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
- "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==",
- "dependencies": {
- "@types/pbkdf2": "^3.0.0",
- "@types/secp256k1": "^4.0.1",
- "blakejs": "^1.1.0",
- "browserify-aes": "^1.2.0",
- "bs58check": "^2.1.2",
- "create-hash": "^1.2.0",
- "create-hmac": "^1.1.7",
- "hash.js": "^1.1.7",
- "keccak": "^3.0.0",
- "pbkdf2": "^3.0.17",
- "randombytes": "^2.1.0",
- "safe-buffer": "^5.1.2",
- "scrypt-js": "^3.0.0",
- "secp256k1": "^4.0.1",
- "setimmediate": "^1.0.5"
- }
+ "node_modules/fromentries": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
+ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
},
- "node_modules/ethereumjs-util": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz",
- "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==",
+ "node_modules/fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
+ },
+ "node_modules/fs-extra": {
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+ "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
"dependencies": {
- "@types/bn.js": "^5.1.0",
- "bn.js": "^5.1.2",
- "create-hash": "^1.1.2",
- "ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
- "rlp": "^2.2.4"
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^6.0.1",
+ "universalify": "^2.0.0"
},
"engines": {
- "node": ">=10.0.0"
+ "node": ">=12"
}
},
- "node_modules/ethereumjs-util/node_modules/@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "node_modules/fs-extra/node_modules/jsonfile": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+ "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dependencies": {
- "@types/node": "*"
+ "universalify": "^2.0.0"
+ },
+ "optionalDependencies": {
+ "graceful-fs": "^4.1.6"
}
},
- "node_modules/ethereumjs-util/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
+ "node_modules/fs-extra/node_modules/universalify": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+ "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "engines": {
+ "node": ">= 10.0.0"
+ }
},
- "node_modules/ethereumjs-wallet": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz",
- "integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==",
- "dev": true,
+ "node_modules/fs-minipass": {
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
+ "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
"dependencies": {
- "aes-js": "^3.1.2",
- "bs58check": "^2.1.2",
- "ethereum-cryptography": "^0.1.3",
- "ethereumjs-util": "^7.1.2",
- "randombytes": "^2.1.0",
- "scrypt-js": "^3.0.1",
- "utf8": "^3.0.0",
- "uuid": "^8.3.2"
+ "minipass": "^2.6.0"
}
},
- "node_modules/ethjs-unit": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz",
- "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=",
+ "node_modules/fs-write-stream-atomic": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
+ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
+ "dev": true,
"dependencies": {
- "bn.js": "4.11.6",
- "number-to-bn": "1.7.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "graceful-fs": "^4.1.2",
+ "iferr": "^0.1.5",
+ "imurmurhash": "^0.1.4",
+ "readable-stream": "1 || 2"
}
},
- "node_modules/ethjs-unit/node_modules/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU="
- },
- "node_modules/ethjs-util": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz",
- "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==",
+ "node_modules/fs-write-stream-atomic/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dev": true,
"dependencies": {
- "is-hex-prefixed": "1.0.0",
- "strip-hex-prefix": "1.0.0"
- },
- "engines": {
- "node": ">=6.5.0",
- "npm": ">=3"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/event-emitter": {
- "version": "0.3.5",
- "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
- "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
+ "node_modules/fs-write-stream-atomic/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dev": true,
"dependencies": {
- "d": "1",
- "es5-ext": "~0.10.14"
+ "safe-buffer": "~5.1.0"
}
},
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">=6"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
- "node_modules/eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw=="
- },
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
+ "node_modules/fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
"engines": {
- "node": ">=0.8.x"
+ "node": ">=0.6"
}
},
- "node_modules/evp_bytestokey": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
- "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
+ "node_modules/fstream/node_modules/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dependencies": {
- "md5.js": "^1.3.4",
- "safe-buffer": "^5.1.1"
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
}
},
- "node_modules/execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "node_modules/fstream/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- },
- "engines": {
- "node": ">=10"
+ "glob": "^7.1.3"
},
- "funding": {
- "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ "bin": {
+ "rimraf": "bin.js"
}
},
- "node_modules/exit-on-epipe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==",
- "engines": {
- "node": ">=0.8"
- }
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
- "node_modules/expand-brackets": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
- "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=",
- "dev": true,
- "peer": true,
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
"dependencies": {
- "debug": "^2.3.3",
- "define-property": "^0.2.5",
- "extend-shallow": "^2.0.1",
- "posix-character-classes": "^0.1.0",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/expand-brackets/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "ms": "2.0.0"
- }
+ "node_modules/functional-red-black-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
- "node_modules/expand-brackets/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "dev": true,
- "peer": true
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "node_modules/express": {
- "version": "4.17.1",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
- "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
+ "node_modules/ganache": {
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.0.tgz",
+ "integrity": "sha512-e1x0ZJsJ5zUP+hWtpSNv+FaavRdcrQhQwe+QZ4kVon5mDm6RgFpe3PzNDJXg82AeqqslohJeK9UinZbZzjewjQ==",
+ "bundleDependencies": [
+ "@trufflesuite/bigint-buffer",
+ "emittery",
+ "keccak",
+ "leveldown",
+ "secp256k1",
+ "@types/bn.js",
+ "@types/lru-cache",
+ "@types/seedrandom"
+ ],
+ "hasShrinkwrap": true,
"dependencies": {
- "accepts": "~1.3.7",
- "array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
- "content-type": "~1.0.4",
- "cookie": "0.4.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "~1.1.2",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
+ "@trufflesuite/bigint-buffer": "1.1.10",
+ "@types/bn.js": "^5.1.0",
+ "@types/lru-cache": "5.1.1",
+ "@types/seedrandom": "3.0.1",
+ "emittery": "0.10.0",
+ "keccak": "3.0.1",
+ "leveldown": "6.1.0",
+ "secp256k1": "4.0.2"
},
- "engines": {
- "node": ">= 0.10.0"
+ "bin": {
+ "ganache": "dist/node/cli.js",
+ "ganache-cli": "dist/node/cli.js"
+ },
+ "optionalDependencies": {
+ "bufferutil": "4.0.5",
+ "utf-8-validate": "5.0.7"
}
},
- "node_modules/express-fileupload": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.2.1.tgz",
- "integrity": "sha512-fWPNAkBj+Azt9Itmcz/Reqdg3LeBfaXptDEev2JM8bCC0yDptglCnlizhf0YZauyU5X/g6v7v4Xxqhg8tmEfEA==",
+ "node_modules/ganache-cli": {
+ "version": "6.12.2",
+ "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz",
+ "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==",
+ "bundleDependencies": [
+ "source-map-support",
+ "yargs",
+ "ethereumjs-util"
+ ],
+ "deprecated": "ganache-cli is now ganache; visit https://trfl.io/g7 for details",
"dependencies": {
- "busboy": "^0.3.1"
+ "ethereumjs-util": "6.2.1",
+ "source-map-support": "0.5.12",
+ "yargs": "13.2.4"
},
- "engines": {
- "node": ">=8.0.0"
+ "bin": {
+ "ganache-cli": "cli.js"
}
},
- "node_modules/express-ipfilter": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/express-ipfilter/-/express-ipfilter-1.2.0.tgz",
- "integrity": "sha512-nPXKMuhqVjX7+Vny4XsrpdqlX4YAGcanE0gh5xzpfmNTsINGAgPnpk67kb0No3p1m4vGQQLU6hdaXRxsuGNlTA==",
+ "node_modules/ganache-cli/node_modules/@types/bn.js": {
+ "version": "4.11.6",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "ip": "~1.1.0",
- "lodash": "^4.17.11",
- "proxy-addr": "^2.0.4",
- "range_check": "^1.2.0"
- },
- "engines": {
- "node": ">=8.9.0"
+ "@types/node": "*"
}
},
- "node_modules/express-rate-limit": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-6.3.0.tgz",
- "integrity": "sha512-932Io1VGKjM3ppi7xW9sb1J5nVkEJSUiOtHw2oE+JyHks1e+AXuOBSXbJKM0mcXwEnW1TibJibQ455Ow1YFjfg==",
- "engines": {
- "node": ">= 12.9.0"
- },
- "peerDependencies": {
- "express": "^4"
- }
+ "node_modules/ganache-cli/node_modules/@types/node": {
+ "version": "14.11.2",
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/express-slow-down": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/express-slow-down/-/express-slow-down-1.4.0.tgz",
- "integrity": "sha512-Tw5aa0plPj2STiuc2SyMw2VSjMvBgLGQHHoPhkIL4iPQcFZDueWBaiLxFZ3SrwrJhiu3b3sHNcsP6lXeWnbwAw==",
+ "node_modules/ganache-cli/node_modules/@types/pbkdf2": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "defaults": "^1.0.3"
+ "@types/node": "*"
}
},
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/ganache-cli/node_modules/@types/secp256k1": {
+ "version": "4.0.1",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.0.0"
+ "@types/node": "*"
}
},
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "node_modules/ganache-cli/node_modules/ansi-regex": {
+ "version": "4.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/express/node_modules/qs": {
- "version": "6.7.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
- "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
+ "node_modules/ganache-cli/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
"engines": {
- "node": ">=0.6"
+ "node": ">=4"
}
},
- "node_modules/ext": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/ext/-/ext-1.6.0.tgz",
- "integrity": "sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==",
+ "node_modules/ganache-cli/node_modules/base-x": {
+ "version": "3.0.8",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "type": "^2.5.0"
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/ext/node_modules/type": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz",
- "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw=="
+ "node_modules/ganache-cli/node_modules/blakejs": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "CC0-1.0"
},
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ "node_modules/ganache-cli/node_modules/bn.js": {
+ "version": "4.11.9",
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/extend-shallow": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
- "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/brorand": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/browserify-aes": {
+ "version": "1.2.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "is-extendable": "^0.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/extglob": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
- "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/bs58": {
+ "version": "4.0.1",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "array-unique": "^0.3.2",
- "define-property": "^1.0.0",
- "expand-brackets": "^2.1.4",
- "extend-shallow": "^2.0.1",
- "fragment-cache": "^0.2.1",
- "regex-not": "^1.0.0",
- "snapdragon": "^0.8.1",
- "to-regex": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
+ "base-x": "^3.0.2"
}
},
- "node_modules/extglob/node_modules/define-property": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
- "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/bs58check": {
+ "version": "2.1.2",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "is-descriptor": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/extglob/node_modules/is-accessor-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
- "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
- "dev": true,
- "peer": true,
- "dependencies": {
- "kind-of": "^6.0.0"
- },
+ "node_modules/ganache-cli/node_modules/buffer-from": {
+ "version": "1.1.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/buffer-xor": {
+ "version": "1.0.3",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/camelcase": {
+ "version": "5.3.1",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/extglob/node_modules/is-data-descriptor": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
- "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/cipher-base": {
+ "version": "1.0.4",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "kind-of": "^6.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
}
},
- "node_modules/extglob/node_modules/is-descriptor": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
- "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/cliui": {
+ "version": "5.0.0",
+ "inBundle": true,
+ "license": "ISC",
"dependencies": {
- "is-accessor-descriptor": "^1.0.0",
- "is-data-descriptor": "^1.0.0",
- "kind-of": "^6.0.2"
- },
- "engines": {
- "node": ">=0.10.0"
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
}
},
- "node_modules/extglob/node_modules/kind-of": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
- "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
- "dev": true,
- "peer": true,
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/ganache-cli/node_modules/color-convert": {
+ "version": "1.9.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
}
},
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "engines": [
- "node >=0.6.0"
- ]
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+ "node_modules/ganache-cli/node_modules/color-name": {
+ "version": "1.1.3",
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/fast-fifo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz",
- "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ=="
+ "node_modules/ganache-cli/node_modules/create-hash": {
+ "version": "1.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+ "node_modules/ganache-cli/node_modules/create-hmac": {
+ "version": "1.1.7",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
},
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
+ "node_modules/ganache-cli/node_modules/cross-spawn": {
+ "version": "6.0.5",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ },
+ "engines": {
+ "node": ">=4.8"
+ }
},
- "node_modules/fast-redact": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz",
- "integrity": "sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A==",
+ "node_modules/ganache-cli/node_modules/decamelize": {
+ "version": "1.2.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=0.10.0"
}
},
- "node_modules/fast-safe-stringify": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
- "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
+ "node_modules/ganache-cli/node_modules/elliptic": {
+ "version": "6.5.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
},
- "node_modules/fast-sort": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/fast-sort/-/fast-sort-3.1.1.tgz",
- "integrity": "sha512-EA3PVIYj8uyyJc2Mma7GHjMrE74N/ClKkBj5gVUmY+8JePrc/ognCk4bhszVGYazu9Qk2aUTHnBF38QDSHcjkg=="
+ "node_modules/ganache-cli/node_modules/emoji-regex": {
+ "version": "7.0.3",
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/fastq": {
- "version": "1.13.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
- "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "node_modules/ganache-cli/node_modules/end-of-stream": {
+ "version": "1.4.4",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "reusify": "^1.0.4"
+ "once": "^1.4.0"
}
},
- "node_modules/fecha": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
- "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
+ "node_modules/ganache-cli/node_modules/ethereum-cryptography": {
+ "version": "0.1.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
},
- "node_modules/fetch-blob": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz",
- "integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow==",
- "engines": {
- "node": "^10.17.0 || >=12.3.0"
- },
- "peerDependenciesMeta": {
- "domexception": {
- "optional": true
- }
+ "node_modules/ganache-cli/node_modules/ethereumjs-util": {
+ "version": "6.2.1",
+ "inBundle": true,
+ "license": "MPL-2.0",
+ "dependencies": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
}
},
- "node_modules/fetch-sparql-endpoint": {
- "version": "2.4.0",
- "resolved": "https://registry.npmjs.org/fetch-sparql-endpoint/-/fetch-sparql-endpoint-2.4.0.tgz",
- "integrity": "sha512-7SLCQFF1N8dOhnJBJL2engSRYKZxD6oCsQ+rGQa/AwEfHpYqmJZVkyLWXC/pkV8vsZ1vkvYj8x89x2UpthQjdA==",
+ "node_modules/ganache-cli/node_modules/ethjs-util": {
+ "version": "0.1.6",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "@rdfjs/types": "*",
- "@types/readable-stream": "^2.3.11",
- "@types/sparqljs": "^3.1.3",
- "abort-controller": "^3.0.0",
- "cross-fetch": "^3.0.6",
- "is-stream": "^2.0.0",
- "minimist": "^1.2.0",
- "n3": "^1.6.3",
- "rdf-string": "^1.6.0",
- "readable-web-to-node-stream": "^3.0.2",
- "sparqljs": "^3.1.2",
- "sparqljson-parse": "^1.7.0",
- "sparqlxml-parse": "^1.5.0",
- "stream-to-string": "^1.1.0"
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
},
- "bin": {
- "fetch-sparql-endpoint": "bin/fetch-sparql-endpoint.js"
+ "engines": {
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/figgy-pudding": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
- "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
- "dev": true
+ "node_modules/ganache-cli/node_modules/evp_bytestokey": {
+ "version": "1.0.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
+ }
},
- "node_modules/figures": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
- "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/execa": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "escape-string-regexp": "^1.0.5"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/find-up": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^3.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/figures/node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "inBundle": true,
+ "license": "ISC",
"engines": {
- "node": ">=0.8.0"
+ "node": "6.* || 8.* || >= 10.*"
}
},
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "node_modules/ganache-cli/node_modules/get-stream": {
+ "version": "4.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "flat-cache": "^3.0.4"
+ "pump": "^3.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=6"
}
},
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/hash-base": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "to-regex-range": "^5.0.1"
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=4"
}
},
- "node_modules/finalhandler": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
- "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
+ "node_modules/ganache-cli/node_modules/hash.js": {
+ "version": "1.1.7",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.3",
- "statuses": "~1.5.0",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
}
},
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "node_modules/ganache-cli/node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "ms": "2.0.0"
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
}
},
- "node_modules/finalhandler/node_modules/ms": {
+ "node_modules/ganache-cli/node_modules/inherits": {
+ "version": "2.0.4",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/invert-kv": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
- "node_modules/find-cache-dir": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
- "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^3.0.2",
- "pkg-dir": "^4.1.0"
- },
+ "node_modules/ganache-cli/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
+ "node": ">=4"
}
},
- "node_modules/find-cache-dir/node_modules/find-up": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
- "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
- "dev": true,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
+ "node_modules/ganache-cli/node_modules/is-hex-prefixed": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/find-cache-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/is-stream": {
+ "version": "1.1.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/isexe": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/keccak": {
+ "version": "3.0.1",
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "p-locate": "^4.1.0"
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10.0.0"
}
},
- "node_modules/find-cache-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/lcid": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "p-try": "^2.0.0"
+ "invert-kv": "^2.0.0"
},
"engines": {
"node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/find-cache-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
- "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/locate-path": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "p-limit": "^2.2.0"
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/find-cache-dir/node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/map-age-cleaner": {
+ "version": "0.1.3",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-defer": "^1.0.0"
+ },
"engines": {
"node": ">=6"
}
},
- "node_modules/find-cache-dir/node_modules/path-exists": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
- "engines": {
- "node": ">=8"
+ "node_modules/ganache-cli/node_modules/md5.js": {
+ "version": "1.3.5",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
}
},
- "node_modules/find-cache-dir/node_modules/pkg-dir": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
- "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/mem": {
+ "version": "4.3.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "find-up": "^4.0.0"
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6"
}
},
- "node_modules/find-up": {
+ "node_modules/ganache-cli/node_modules/mimic-fn": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "dev": true,
- "peer": true,
- "dependencies": {
- "locate-path": "^2.0.0"
- },
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/nice-try": {
+ "version": "1.0.5",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/node-addon-api": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/node-gyp-build": {
+ "version": "4.2.3",
+ "inBundle": true,
+ "license": "MIT",
"bin": {
- "flat": "cli.js"
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
}
},
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "node_modules/ganache-cli/node_modules/npm-run-path": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
+ "path-key": "^2.0.0"
},
"engines": {
- "node": "^10.12.0 || >=12.0.0"
+ "node": ">=4"
}
},
- "node_modules/flatstr": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
- "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
- },
- "node_modules/flatted": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz",
- "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
- },
- "node_modules/flush-write-stream": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz",
- "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/once": {
+ "version": "1.4.0",
+ "inBundle": true,
+ "license": "ISC",
"dependencies": {
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.6"
+ "wrappy": "1"
}
},
- "node_modules/flush-write-stream/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/os-locale": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/flush-write-stream/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "~5.1.0"
+ "node_modules/ganache-cli/node_modules/p-defer": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/fn.name": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
- "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
- },
- "node_modules/follow-redirects": {
- "version": "1.14.9",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
- "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==",
- "funding": [
- {
- "type": "individual",
- "url": "https://github.com/sponsors/RubenVerborgh"
- }
- ],
+ "node_modules/ganache-cli/node_modules/p-finally": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=4.0"
- },
- "peerDependenciesMeta": {
- "debug": {
- "optional": true
- }
+ "node": ">=4"
}
},
- "node_modules/for-in": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
- "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/p-is-promise": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
}
},
- "node_modules/foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ "node_modules/ganache-cli/node_modules/p-limit": {
+ "version": "2.3.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "node_modules/foreground-child": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz",
- "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/p-locate": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "cross-spawn": "^7.0.0",
- "signal-exit": "^3.0.2"
+ "p-limit": "^2.0.0"
},
"engines": {
- "node": ">=8.0.0"
+ "node": ">=6"
}
},
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "node_modules/ganache-cli/node_modules/p-try": {
+ "version": "2.2.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": "*"
+ "node": ">=6"
}
},
- "node_modules/form-data": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
- "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.8",
- "mime-types": "^2.1.12"
- },
+ "node_modules/ganache-cli/node_modules/path-exists": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">= 6"
+ "node": ">=4"
}
},
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "node_modules/ganache-cli/node_modules/path-key": {
+ "version": "2.0.1",
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.6"
+ "node": ">=4"
}
},
- "node_modules/fragment-cache": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
- "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=",
- "dev": true,
- "peer": true,
+ "node_modules/ganache-cli/node_modules/pbkdf2": {
+ "version": "3.1.1",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "map-cache": "^0.2.2"
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=0.12"
}
},
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
- "engines": {
- "node": ">= 0.6"
+ "node_modules/ganache-cli/node_modules/pump": {
+ "version": "3.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
}
},
- "node_modules/from2": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/randombytes": {
+ "version": "2.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "node_modules/from2/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/require-directory": {
+ "version": "2.1.1",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/require-main-filename": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/ripemd160": {
+ "version": "2.0.2",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
}
},
- "node_modules/from2/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/rlp": {
+ "version": "2.2.6",
+ "inBundle": true,
+ "license": "MPL-2.0",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "bn.js": "^4.11.1"
+ },
+ "bin": {
+ "rlp": "bin/rlp"
}
},
- "node_modules/fromentries": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz",
- "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/safe-buffer": {
+ "version": "5.2.1",
"funding": [
{
"type": "github",
@@ -8712,203 +12731,333 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ]
+ ],
+ "inBundle": true,
+ "license": "MIT"
},
- "node_modules/fs-extra": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
- "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+ "node_modules/ganache-cli/node_modules/scrypt-js": {
+ "version": "3.0.1",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/secp256k1": {
+ "version": "4.0.2",
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
},
"engines": {
- "node": ">=12"
+ "node": ">=10.0.0"
}
},
- "node_modules/fs-extra/node_modules/jsonfile": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
- "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+ "node_modules/ganache-cli/node_modules/semver": {
+ "version": "5.7.1",
+ "inBundle": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/set-blocking": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/setimmediate": {
+ "version": "1.0.5",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/sha.js": {
+ "version": "2.4.11",
+ "inBundle": true,
+ "license": "(MIT AND BSD-3-Clause)",
"dependencies": {
- "universalify": "^2.0.0"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
},
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
+ "bin": {
+ "sha.js": "bin.js"
}
},
- "node_modules/fs-extra/node_modules/universalify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
- "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+ "node_modules/ganache-cli/node_modules/shebang-command": {
+ "version": "1.2.0",
+ "inBundle": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
"engines": {
- "node": ">= 10.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
+ "node_modules/ganache-cli/node_modules/shebang-regex": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/signal-exit": {
+ "version": "3.0.3",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/source-map": {
+ "version": "0.6.1",
+ "inBundle": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/source-map-support": {
+ "version": "0.5.12",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "minipass": "^2.6.0"
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "node_modules/fs-write-stream-atomic": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
- "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "iferr": "^0.1.5",
- "imurmurhash": "^0.1.4",
- "readable-stream": "1 || 2"
+ "safe-buffer": "~5.2.0"
}
},
- "node_modules/fs-write-stream-atomic/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/string-width": {
+ "version": "3.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/fs-write-stream-atomic/node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dev": true,
+ "node_modules/ganache-cli/node_modules/strip-ansi": {
+ "version": "5.2.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "safe-buffer": "~5.1.0"
+ "ansi-regex": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/fs.realpath": {
+ "node_modules/ganache-cli/node_modules/strip-eof": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
+ "inBundle": true,
+ "license": "MIT",
"engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ "node": ">=0.10.0"
}
},
- "node_modules/fstream": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
- "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "node_modules/ganache-cli/node_modules/strip-hex-prefix": {
+ "version": "1.0.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "graceful-fs": "^4.1.2",
- "inherits": "~2.0.0",
- "mkdirp": ">=0.5 0",
- "rimraf": "2"
+ "is-hex-prefixed": "1.0.0"
},
"engines": {
- "node": ">=0.6"
+ "node": ">=6.5.0",
+ "npm": ">=3"
}
},
- "node_modules/fstream/node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "node_modules/ganache-cli/node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache-cli/node_modules/which": {
+ "version": "1.3.1",
+ "inBundle": true,
+ "license": "ISC",
"dependencies": {
- "minimist": "^1.2.6"
+ "isexe": "^2.0.0"
},
"bin": {
- "mkdirp": "bin/cmd.js"
+ "which": "bin/which"
}
},
- "node_modules/fstream/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "node_modules/ganache-cli/node_modules/which-module": {
+ "version": "2.0.0",
+ "inBundle": true,
+ "license": "ISC"
+ },
+ "node_modules/ganache-cli/node_modules/wrap-ansi": {
+ "version": "5.1.0",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^7.1.3"
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
},
- "bin": {
- "rimraf": "bin.js"
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ "node_modules/ganache-cli/node_modules/wrappy": {
+ "version": "1.0.2",
+ "inBundle": true,
+ "license": "ISC"
},
- "node_modules/functional-red-black-tree": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
- "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
+ "node_modules/ganache-cli/node_modules/y18n": {
+ "version": "4.0.0",
+ "inBundle": true,
+ "license": "ISC"
},
- "node_modules/ganache": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.0.5.tgz",
- "integrity": "sha512-CMRj6dwl1WtE3/4uLHhn/TcZA6QB0SM9YFxSp0ToeGJQ+9HYyfPlzuDE7CzniN+PklEHaCcpgoRYAq9Py9m6WA==",
- "dev": true,
- "hasShrinkwrap": true,
+ "node_modules/ganache-cli/node_modules/yargs": {
+ "version": "13.2.4",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "@trufflesuite/bigint-buffer": "1.1.9",
- "emittery": "0.10.0",
- "keccak": "3.0.1",
- "leveldown": "6.1.0",
- "secp256k1": "4.0.2"
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ },
+ "node_modules/ganache-cli/node_modules/yargs-parser": {
+ "version": "13.1.2",
+ "inBundle": true,
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
+ },
+ "node_modules/ganache-time-traveler": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/ganache-time-traveler/-/ganache-time-traveler-1.0.16.tgz",
+ "integrity": "sha512-oUaQge9tiT/zzcGqehqJcoH10claKi9QFhq7zI1Wa3KtdPobjgLVMYvqXCJuHCAZoS7sHvLB/N/rSnhmivxaKw=="
+ },
+ "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz",
+ "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==",
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-gyp-build": "4.4.0"
},
+ "engines": {
+ "node": ">= 14.0.0"
+ }
+ },
+ "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer/node_modules/node-gyp-build": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
+ "inBundle": true,
+ "license": "MIT",
"bin": {
- "ganache": "dist/node/cli.js",
- "ganache-cli": "dist/node/cli.js"
- },
- "optionalDependencies": {
- "bufferutil": "4.0.5",
- "utf-8-validate": "5.0.7"
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
}
},
- "node_modules/ganache/node_modules/@trufflesuite/bigint-buffer": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz",
- "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==",
- "dev": true,
+ "node_modules/ganache/node_modules/@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
- "node-gyp-build": "4.3.0"
+ "@types/node": "*"
}
},
+ "node_modules/ganache/node_modules/@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache/node_modules/@types/node": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz",
+ "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==",
+ "inBundle": true,
+ "license": "MIT"
+ },
+ "node_modules/ganache/node_modules/@types/seedrandom": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz",
+ "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==",
+ "inBundle": true,
+ "license": "MIT"
+ },
"node_modules/ganache/node_modules/base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "node_modules/ganache/node_modules/bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
- "dev": true
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
"integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
@@ -8918,7 +13067,6 @@
"version": "4.0.5",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz",
"integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==",
- "dev": true,
"optional": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
@@ -8928,16 +13076,21 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz",
"integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"queue-tick": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
"node_modules/ganache/node_modules/elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -8948,17 +13101,32 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "node_modules/ganache/node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "inBundle": true,
+ "license": "MIT"
+ },
"node_modules/ganache/node_modules/emittery": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz",
"integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
},
"node_modules/ganache/node_modules/hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -8968,7 +13136,8 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -8979,46 +13148,91 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "BSD-3-Clause"
},
"node_modules/ganache/node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "inBundle": true,
+ "license": "ISC"
},
"node_modules/ganache/node_modules/is-buffer": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
"integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
},
"node_modules/ganache/node_modules/keccak": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz",
"integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==",
- "dev": true,
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
}
},
"node_modules/ganache/node_modules/leveldown": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz",
"integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==",
- "dev": true,
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"abstract-leveldown": "^7.2.0",
"napi-macros": "~2.0.0",
"node-gyp-build": "^4.3.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
}
},
"node_modules/ganache/node_modules/leveldown/node_modules/abstract-leveldown": {
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
"integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"buffer": "^6.0.3",
"catering": "^2.0.0",
@@ -9026,81 +13240,122 @@
"level-concat-iterator": "^3.0.0",
"level-supports": "^2.0.1",
"queue-microtask": "^1.2.3"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/ganache/node_modules/leveldown/node_modules/level-concat-iterator": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz",
"integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==",
- "dev": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"catering": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/ganache/node_modules/leveldown/node_modules/level-supports": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz",
"integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
},
"node_modules/ganache/node_modules/minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
+ "inBundle": true,
+ "license": "ISC"
},
"node_modules/ganache/node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
- "dev": true
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/napi-macros": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz",
"integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/node-gyp-build": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
"integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT",
+ "bin": {
+ "node-gyp-build": "bin.js",
+ "node-gyp-build-optional": "optional.js",
+ "node-gyp-build-test": "build-test.js"
+ }
},
"node_modules/ganache/node_modules/queue-microtask": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/queue-tick": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz",
"integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==",
- "dev": true
+ "inBundle": true,
+ "license": "MIT"
},
"node_modules/ganache/node_modules/secp256k1": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz",
"integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==",
- "dev": true,
+ "hasInstallScript": true,
+ "inBundle": true,
+ "license": "MIT",
"dependencies": {
"elliptic": "^6.5.2",
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0"
+ },
+ "engines": {
+ "node": ">=10.0.0"
}
},
"node_modules/ganache/node_modules/utf-8-validate": {
"version": "5.0.7",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz",
"integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==",
- "dev": true,
"optional": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
@@ -9118,7 +13373,6 @@
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
"integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true,
"engines": {
"node": ">=6.9.0"
}
@@ -9259,30 +13513,6 @@
"process": "^0.11.10"
}
},
- "node_modules/global-dirs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
- "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
- "dev": true,
- "dependencies": {
- "ini": "2.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/global-dirs/node_modules/ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
"node_modules/globals": {
"version": "13.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
@@ -9298,43 +13528,37 @@
}
},
"node_modules/got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
- "dependencies": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
- },
- "engines": {
- "node": ">=8.6"
- }
- },
- "node_modules/got/node_modules/get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "dependencies": {
- "pump": "^3.0.0"
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
+ "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
+ "dependencies": {
+ "@sindresorhus/is": "^4.6.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "@types/cacheable-request": "^6.0.2",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^6.0.4",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "1.7.1",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
},
- "engines": {
- "node": ">=6"
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
}
},
"node_modules/got/node_modules/p-cancelable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
"engines": {
- "node": ">=6"
+ "node": ">=12.20"
}
},
"node_modules/graceful-fs": {
@@ -9343,15 +13567,15 @@
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"node_modules/graphdb": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.0.tgz",
- "integrity": "sha512-9YzAzmTHhUrdJiogQvjRmRlW/SLO6GLE2IUwML4fN8EXbJLz7ABWjFwB7nPJU9fROS+faklNPmKMfP8dbr/aAw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.2.tgz",
+ "integrity": "sha512-ORbS7yw/kTUdKXyeO7QaXx1I3fxigej3KQQdrVSpu0ZQ1W7OVQHDAd/Gu+x2clpwm6sela94Uh/+YKkQGbZqmA==",
"dependencies": {
- "axios": "^0.21.1",
+ "axios": "^0.21.4",
"base64url": "^3.0.1",
"eslint-config-google": "^0.13.0",
"jsonld-streaming-parser": "^2.2.0",
- "n3": "^1.7.0",
+ "n3": "^1.16.2",
"pino": "^5.17.0",
"qs": "^6.9.4",
"rdfxml-streaming-parser": "^1.4.0",
@@ -9424,11 +13648,15 @@
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
"integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true,
"engines": {
"node": ">=4.x"
}
},
+ "node_modules/hamming-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hamming-distance/-/hamming-distance-1.0.0.tgz",
+ "integrity": "sha512-hYz2IIKtyuZGfOqCs7skNiFEATf+v9IUNSOaQSr6Ll4JOxxWhOvXvc3mIdCW82Z3xW+zUoto7N/ssD4bDxAWoA=="
+ },
"node_modules/har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -9462,9 +13690,9 @@
}
},
"node_modules/has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -9477,6 +13705,17 @@
"node": ">=4"
}
},
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-symbol-support-x": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
@@ -9486,9 +13725,9 @@
}
},
"node_modules/has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": {
"node": ">= 0.4"
},
@@ -9583,15 +13822,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/has-yarn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
- "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/hash-base": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
@@ -9667,16 +13897,42 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
"bin": {
"he": "bin/he"
}
},
+ "node_modules/header-case": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
+ "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==",
+ "dependencies": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.3"
+ }
+ },
+ "node_modules/header-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/header-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
"node_modules/heap": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz",
"integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw="
},
+ "node_modules/hex-to-binary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hex-to-binary/-/hex-to-binary-1.0.1.tgz",
+ "integrity": "sha512-m1ykzQs9fKfgfzXj2oV5xAWoyGaudwa0qxY4IDUOgY8J69fKY7mXdwTfQHtS3Y5kglpwM7UmyCSQFKnL87FrdQ=="
+ },
"node_modules/hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@@ -9761,7 +14017,7 @@
"node_modules/http-https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
- "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs="
+ "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg=="
},
"node_modules/http-link-header": {
"version": "1.0.3",
@@ -9800,6 +14056,18 @@
"npm": ">=1.3.7"
}
},
+ "node_modules/http2-wrapper": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz",
+ "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==",
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
"node_modules/https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -9852,7 +14120,7 @@
"node_modules/idna-uts46-hx/node_modules/punycode": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
- "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=",
+ "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA==",
"engines": {
"node": ">=6"
}
@@ -9896,6 +14164,11 @@
"integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
"dev": true
},
+ "node_modules/immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q=="
+ },
"node_modules/immutable": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
@@ -9916,15 +14189,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/import-lazy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -10009,9 +14273,9 @@
}
},
"node_modules/ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"node_modules/ip-address": {
"version": "8.1.0",
@@ -10149,7 +14413,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -10205,18 +14468,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
- "dev": true,
- "dependencies": {
- "ci-info": "^2.0.0"
- },
- "bin": {
- "is-ci": "bin.js"
- }
- },
"node_modules/is-core-module": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz",
@@ -10323,6 +14574,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-fn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz",
+ "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -10370,22 +14629,6 @@
"npm": ">=3"
}
},
- "node_modules/is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "dev": true,
- "dependencies": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-ip": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
@@ -10402,10 +14645,23 @@
"resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz",
"integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw=="
},
+ "node_modules/is-lower-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==",
+ "dependencies": {
+ "lower-case": "^1.1.0"
+ }
+ },
+ "node_modules/is-lower-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
"node_modules/is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
"engines": {
"node": ">= 0.4"
},
@@ -10413,31 +14669,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-npm": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
- "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -10448,15 +14691,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-object": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
@@ -10465,15 +14699,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/is-plain-obj": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
@@ -10528,6 +14753,17 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
@@ -10568,14 +14804,14 @@
}
},
"node_modules/is-typed-array": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz",
- "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
+ "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
- "es-abstract": "^1.18.5",
- "foreach": "^2.0.5",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
"has-tostringtag": "^1.0.0"
},
"engines": {
@@ -10594,7 +14830,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
"integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -10602,6 +14837,25 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/is-upper-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==",
+ "dependencies": {
+ "upper-case": "^1.1.0"
+ }
+ },
+ "node_modules/is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-windows": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
@@ -10620,12 +14874,6 @@
"node": ">=4"
}
},
- "node_modules/is-yarn-global": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
- "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
- "dev": true
- },
"node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -11038,7 +15286,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
"integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
"bin": {
"jsesc": "bin/jsesc"
},
@@ -11059,9 +15306,9 @@
}
},
"node_modules/json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"node_modules/json-parse-better-errors": {
"version": "1.0.2",
@@ -11070,6 +15317,28 @@
"dev": true,
"peer": true
},
+ "node_modules/json-pointer": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz",
+ "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==",
+ "dependencies": {
+ "foreach": "^2.0.4"
+ }
+ },
+ "node_modules/json-rpc-engine": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz",
+ "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==",
+ "dependencies": {
+ "eth-rpc-errors": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
+ }
+ },
+ "node_modules/json-rpc-random-id": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz",
+ "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA=="
+ },
"node_modules/json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
@@ -11114,7 +15383,7 @@
"node_modules/jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
@@ -11193,6 +15462,14 @@
"node >= 0.2.0"
]
},
+ "node_modules/jsonschema": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/JSONStream": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
@@ -11208,6 +15485,35 @@
"node": "*"
}
},
+ "node_modules/jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "dependencies": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "engines": {
+ "node": ">=4",
+ "npm": ">=1.4.28"
+ }
+ },
+ "node_modules/jsonwebtoken/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
"node_modules/jsprim": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
@@ -11236,6 +15542,31 @@
"node": ">=4.0"
}
},
+ "node_modules/just-extend": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
+ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "dev": true
+ },
+ "node_modules/jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "dependencies": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "node_modules/jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "dependencies": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/k-bucket": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz",
@@ -11258,17 +15589,28 @@
"node": ">=10.0.0"
}
},
+ "node_modules/keccak256": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz",
+ "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==",
+ "dependencies": {
+ "bn.js": "^5.2.0",
+ "buffer": "^6.0.3",
+ "keccak": "^3.0.2"
+ }
+ },
"node_modules/keypair": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz",
"integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg=="
},
"node_modules/keyv": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz",
+ "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==",
"dependencies": {
- "json-buffer": "3.0.0"
+ "compress-brotli": "^1.3.8",
+ "json-buffer": "3.0.1"
}
},
"node_modules/kind-of": {
@@ -11382,16 +15724,117 @@
"language-subtag-registry": "~0.3.2"
}
},
- "node_modules/latest-version": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
- "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
- "dev": true,
+ "node_modules/level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ=="
+ },
+ "node_modules/level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "dependencies": {
+ "errno": "~0.1.1"
+ }
+ },
+ "node_modules/level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/level-iterator-stream/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "node_modules/level-iterator-stream/node_modules/readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/level-iterator-stream/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "node_modules/level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==",
+ "dependencies": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ }
+ },
+ "node_modules/level-ws/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "node_modules/level-ws/node_modules/object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw=="
+ },
+ "node_modules/level-ws/node_modules/readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
"dependencies": {
- "package-json": "^6.3.0"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/level-ws/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "node_modules/level-ws/node_modules/xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==",
+ "dependencies": {
+ "object-keys": "~0.4.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
+ "dependencies": {
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ }
+ },
+ "node_modules/levelup/node_modules/semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "bin": {
+ "semver": "bin/semver"
}
},
"node_modules/leven": {
@@ -11511,9 +15954,9 @@
}
},
"node_modules/libp2p-interfaces": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.1.0.tgz",
- "integrity": "sha512-5nc/HZJgeks1qfkyYQdI84hcZLF4SJKJSUx33JpO0w7v7R+obz+HOwk0GSa4/ZvQHjX+/+OWC4NYVA0yZxZXag==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz",
+ "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==",
"dependencies": {
"abort-controller": "^3.0.0",
"abortable-iterator": "^3.0.0",
@@ -11522,14 +15965,36 @@
"it-length-prefixed": "^5.0.2",
"it-pipe": "^1.1.0",
"it-pushable": "^1.4.2",
- "libp2p-crypto": "^0.19.5",
+ "libp2p-crypto": "^0.20.0",
"multiaddr": "^10.0.0",
"multiformats": "^9.1.2",
- "peer-id": "^0.15.0",
+ "p-queue": "^6.6.2",
+ "peer-id": "^0.15.4",
"protobufjs": "^6.10.2",
"uint8arrays": "^3.0.0"
}
},
+ "node_modules/libp2p-interfaces/node_modules/libp2p-crypto": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
+ "dependencies": {
+ "err-code": "^3.0.1",
+ "iso-random-stream": "^2.0.0",
+ "keypair": "^1.0.4",
+ "multiformats": "^9.4.5",
+ "noble-ed25519": "^1.2.6",
+ "noble-secp256k1": "^1.2.10",
+ "node-forge": "^0.10.0",
+ "pem-jwk": "^2.0.0",
+ "protobufjs": "^6.11.2",
+ "uint8arrays": "^3.0.0",
+ "ursa-optional": "^0.10.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/libp2p-kad-dht": {
"version": "0.24.2",
"resolved": "https://registry.npmjs.org/libp2p-kad-dht/-/libp2p-kad-dht-0.24.2.tgz",
@@ -11564,12 +16029,11 @@
}
},
"node_modules/libp2p-mplex": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz",
- "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==",
+ "version": "0.10.7",
+ "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz",
+ "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==",
"dependencies": {
- "abort-controller": "^3.0.0",
- "abortable-iterator": "^3.0.0",
+ "abortable-iterator": "^3.0.2",
"bl": "^5.0.0",
"debug": "^4.3.1",
"err-code": "^3.0.1",
@@ -11899,22 +16363,83 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
+ "node_modules/lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
"node_modules/lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
+ "node_modules/lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "node_modules/lodash.flatmap": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz",
+ "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg=="
+ },
"node_modules/lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
"integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
"dev": true
},
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "node_modules/lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+ },
+ "node_modules/lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "node_modules/lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "node_modules/lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+ },
+ "node_modules/lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+ },
+ "node_modules/lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+ },
+ "node_modules/lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
"node_modules/lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "node_modules/lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+ },
"node_modules/lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
@@ -11924,7 +16449,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -11988,8 +16512,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dev": true,
- "peer": true,
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -12014,12 +16536,28 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/lower-case-first": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==",
+ "dependencies": {
+ "lower-case": "^1.1.2"
+ }
+ },
+ "node_modules/lower-case-first/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
"node_modules/lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
"engines": {
- "node": ">=0.10.0"
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/lru-cache": {
@@ -12041,6 +16579,11 @@
"es5-ext": "~0.10.2"
}
},
+ "node_modules/ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA=="
+ },
"node_modules/mafmt": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz",
@@ -12114,6 +16657,27 @@
"node": ">= 0.6"
}
},
+ "node_modules/memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==",
+ "dependencies": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ }
+ },
+ "node_modules/memdown/node_modules/abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "dependencies": {
+ "xtend": "~4.0.0"
+ }
+ },
"node_modules/memoizee": {
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
@@ -12201,6 +16765,67 @@
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
+ "node_modules/merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "dependencies": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ }
+ },
+ "node_modules/merkle-patricia-tree/node_modules/async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="
+ },
+ "node_modules/merkle-patricia-tree/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/merkle-patricia-tree/node_modules/ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "dependencies": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/merkle-patricia-tree/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/merkle-patricia-tree/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/merkle-tools": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merkle-tools/-/merkle-tools-1.4.1.tgz",
@@ -12209,6 +16834,26 @@
"js-sha3": "^0.8.0"
}
},
+ "node_modules/merkletreejs": {
+ "version": "0.2.32",
+ "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.2.32.tgz",
+ "integrity": "sha512-TostQBiwYRIwSE5++jGmacu3ODcKAgqb0Y/pnIohXS7sWxh1gCkSptbmF1a43faehRDpcHf7J/kv0Ml2D/zblQ==",
+ "dependencies": {
+ "bignumber.js": "^9.0.1",
+ "buffer-reverse": "^1.0.1",
+ "crypto-js": "^3.1.9-1",
+ "treeify": "^1.1.0",
+ "web3-utils": "^1.3.4"
+ },
+ "engines": {
+ "node": ">= 7.6.0"
+ }
+ },
+ "node_modules/merkletreejs/node_modules/crypto-js": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz",
+ "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
+ },
"node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -12307,6 +16952,11 @@
"miller-rabin": "bin/miller-rabin"
}
},
+ "node_modules/miller-rabin/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
@@ -12356,7 +17006,7 @@
"node_modules/min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"dependencies": {
"dom-walk": "^0.1.0"
}
@@ -12507,7 +17157,7 @@
"node_modules/mkdirp-promise": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
- "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=",
+ "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
"deprecated": "This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.",
"dependencies": {
"mkdirp": "*"
@@ -12520,7 +17170,6 @@
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
"integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
"dependencies": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
@@ -12563,7 +17212,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -12577,14 +17225,12 @@
"node_modules/mocha/node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/mocha/node_modules/cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
"dependencies": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -12595,7 +17241,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
@@ -12606,14 +17251,12 @@
"node_modules/mocha/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/mocha/node_modules/diff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
"integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
"engines": {
"node": ">=0.3.1"
}
@@ -12622,7 +17265,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -12638,7 +17280,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -12647,7 +17288,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
"dependencies": {
"argparse": "^2.0.1"
},
@@ -12659,7 +17299,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -12674,7 +17313,6 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
"integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -12682,17 +17320,10 @@
"node": ">=10"
}
},
- "node_modules/mocha/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"node_modules/mocha/node_modules/p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -12707,7 +17338,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -12722,7 +17352,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true,
"engines": {
"node": ">=8"
}
@@ -12731,7 +17360,6 @@
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -12746,7 +17374,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -12763,7 +17390,6 @@
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
"integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
"engines": {
"node": ">=10"
}
@@ -12772,7 +17398,6 @@
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -12790,7 +17415,6 @@
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true,
"engines": {
"node": ">=10"
}
@@ -12800,10 +17424,18 @@
"resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
"integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw=="
},
+ "node_modules/mock-socket": {
+ "version": "9.1.5",
+ "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz",
+ "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
"engines": {
"node": "*"
}
@@ -12866,9 +17498,9 @@
}
},
"node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/multiaddr": {
"version": "10.0.1",
@@ -12931,9 +17563,9 @@
"integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow=="
},
"node_modules/multiformats": {
- "version": "9.4.7",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz",
- "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA=="
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.7.1.tgz",
+ "integrity": "sha512-TaVmGEBt0fhxiNJMGphBfB+oGvUxFs8KgGvgl8d3C+GWtrFcvXdJ2196eg+dYhmSFClmgFfSfJEklo+SZzdNuw=="
},
"node_modules/multihashes": {
"version": "0.4.21",
@@ -13039,9 +17671,9 @@
}
},
"node_modules/n3": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/n3/-/n3-1.12.2.tgz",
- "integrity": "sha512-vY1HBEraMPWQFLEK6sn67DeGMqTuwXnlEYpZ8gTVukKQSz2f44d+t+ZcmwEt8c99FlVAbpmMb/435Q8t0OC+7w==",
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/n3/-/n3-1.16.2.tgz",
+ "integrity": "sha512-5vYa2HuNEJ+a26FEs4FGgfFLgaPOODaZpJlc7FS0eUjDumc4uK0cvx216PjKXBkLzmAsSqGgQPwqztcLLvwDsw==",
"dependencies": {
"queue-microtask": "^1.1.2",
"readable-stream": "^3.6.0"
@@ -13083,7 +17715,7 @@
"node_modules/nano-json-stream-parser": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
- "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18="
+ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew=="
},
"node_modules/nanoid": {
"version": "3.3.1",
@@ -13265,6 +17897,34 @@
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
+ "node_modules/nise": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz",
+ "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/fake-timers": ">=5",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "path-to-regexp": "^1.7.0"
+ }
+ },
+ "node_modules/nise/node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true
+ },
+ "node_modules/nise/node_modules/path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "dependencies": {
+ "isarray": "0.0.1"
+ }
+ },
"node_modules/no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -13274,11 +17934,55 @@
"tslib": "^2.0.3"
}
},
+ "node_modules/noble-ed25519": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz",
+ "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ==",
+ "deprecated": "Switch to namespaced @noble/ed25519 for security and feature updates"
+ },
+ "node_modules/noble-secp256k1": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
+ "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg==",
+ "deprecated": "Switch to namespaced @noble/secp256k1 for security and feature updates"
+ },
+ "node_modules/nock": {
+ "version": "13.2.9",
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz",
+ "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==",
+ "dependencies": {
+ "debug": "^4.1.0",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.21",
+ "propagate": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 10.13"
+ }
+ },
"node_modules/node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
+ "node_modules/node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/jimmywarting"
+ },
+ {
+ "type": "github",
+ "url": "https://paypal.me/jimmywarting"
+ }
+ ],
+ "engines": {
+ "node": ">=10.5.0"
+ }
+ },
"node_modules/node-fetch": {
"name": "@achingbrain/node-fetch",
"version": "2.6.7",
@@ -13303,6 +18007,17 @@
"node-gyp-build-test": "build-test.js"
}
},
+ "node_modules/node-interval-tree": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz",
+ "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==",
+ "dependencies": {
+ "shallowequal": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 7.6.0"
+ }
+ },
"node_modules/node-libs-browser": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
@@ -13410,15 +18125,14 @@
}
},
"node_modules/node-releases": {
- "version": "1.1.75",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz",
- "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==",
- "dev": true
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
},
"node_modules/nodemon": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
- "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
+ "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@@ -13428,10 +18142,10 @@
"minimatch": "^3.0.4",
"pstree.remy": "^1.1.8",
"semver": "^5.7.1",
+ "simple-update-notifier": "^1.0.7",
"supports-color": "^5.5.0",
"touch": "^3.1.0",
- "undefsafe": "^2.0.5",
- "update-notifier": "^5.1.0"
+ "undefsafe": "^2.0.5"
},
"bin": {
"nodemon": "bin/nodemon.js"
@@ -13462,6 +18176,14 @@
"semver": "bin/semver"
}
},
+ "node_modules/nofilter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz",
+ "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
@@ -13503,17 +18225,19 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==",
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==",
"engines": {
- "node": ">=8"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/npm-run-path": {
@@ -13841,7 +18565,7 @@
"node_modules/oboe": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
- "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=",
+ "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
"dependencies": {
"http-https": "^1.0.0"
}
@@ -13914,6 +18638,11 @@
"node": ">= 0.8.0"
}
},
+ "node_modules/original-require": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz",
+ "integrity": "sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A=="
+ },
"node_modules/os-browserify": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
@@ -14168,30 +18897,6 @@
"node": ">=8"
}
},
- "node_modules/package-json": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
- "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
- "dev": true,
- "dependencies": {
- "got": "^9.6.0",
- "registry-auth-token": "^4.0.0",
- "registry-url": "^5.0.0",
- "semver": "^6.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/package-json/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/pad-right": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz",
@@ -14246,6 +18951,27 @@
"safe-buffer": "~5.1.0"
}
},
+ "node_modules/param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==",
+ "dependencies": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "node_modules/param-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/param-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
"node_modules/parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -14276,9 +19002,9 @@
"dev": true
},
"node_modules/parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"node_modules/parse-json": {
"version": "4.0.0",
@@ -14328,6 +19054,27 @@
"dev": true,
"peer": true
},
+ "node_modules/path-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
+ "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==",
+ "dependencies": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "node_modules/path-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/path-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
"node_modules/path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
@@ -14409,12 +19156,12 @@
}
},
"node_modules/peer-id": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz",
- "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==",
+ "version": "0.15.4",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz",
+ "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==",
"dependencies": {
"class-is": "^1.1.0",
- "libp2p-crypto": "^0.19.0",
+ "libp2p-crypto": "^0.20.0",
"minimist": "^1.2.5",
"multiformats": "^9.4.5",
"protobufjs": "^6.10.2",
@@ -14427,6 +19174,27 @@
"node": ">=14.0.0"
}
},
+ "node_modules/peer-id/node_modules/libp2p-crypto": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
+ "dependencies": {
+ "err-code": "^3.0.1",
+ "iso-random-stream": "^2.0.0",
+ "keypair": "^1.0.4",
+ "multiformats": "^9.4.5",
+ "noble-ed25519": "^1.2.6",
+ "noble-secp256k1": "^1.2.10",
+ "node-forge": "^0.10.0",
+ "pem-jwk": "^2.0.0",
+ "protobufjs": "^6.11.2",
+ "uint8arrays": "^3.0.0",
+ "ursa-optional": "^0.10.1"
+ },
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
"node_modules/pem-jwk": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz",
@@ -14446,11 +19214,15 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
"node_modules/picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
"engines": {
"node": ">=8.6"
},
@@ -14474,8 +19246,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
"integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true,
- "peer": true,
"engines": {
"node": ">=4"
}
@@ -14619,6 +19389,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/precond": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
+ "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
@@ -14628,11 +19406,11 @@
}
},
"node_modules/prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==",
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
"node_modules/prettier": {
@@ -14650,17 +19428,6 @@
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
- "node_modules/printj": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
- "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==",
- "bin": {
- "printj": "bin/printj.njs"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
"node_modules/private-ip": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz",
@@ -14728,6 +19495,18 @@
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz",
"integrity": "sha1-zQTv9G9clcOn0EVZHXm14+AfEtc="
},
+ "node_modules/promise-to-callback": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz",
+ "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==",
+ "dependencies": {
+ "is-fn": "^1.0.0",
+ "set-immediate-shim": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/prop-types": {
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
@@ -14740,15 +19519,23 @@
"react-is": "^16.8.1"
}
},
+ "node_modules/propagate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
+ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
"integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
},
"node_modules/protobufjs": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
- "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
+ "version": "6.11.3",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz",
+ "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==",
"hasInstallScript": true,
"dependencies": {
"@protobufjs/aspromise": "^1.1.2",
@@ -14785,8 +19572,7 @@
"node_modules/prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
- "dev": true
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
},
"node_modules/pseudomap": {
"version": "1.0.2",
@@ -14817,6 +19603,11 @@
"safe-buffer": "^5.1.2"
}
},
+ "node_modules/public-encrypt/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/pump": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
@@ -14891,16 +19682,13 @@
"node": ">=6"
}
},
- "node_modules/pupa": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
- "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
- "dev": true,
- "dependencies": {
- "escape-goat": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
+ "node_modules/pure-rand": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.1.tgz",
+ "integrity": "sha512-ksWccjmXOHU2gJBnH0cK1lSYdvSZ0zLoCMSz/nTGh6hDvCSgcRxDyIcOBD6KNxFz3xhMPm/T267Tbe2JRymKEQ==",
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
}
},
"node_modules/qs": {
@@ -14975,6 +19763,17 @@
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz",
"integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ=="
},
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -15328,7 +20127,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -15352,6 +20150,25 @@
"ms": "^2.1.1"
}
},
+ "node_modules/redux": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
+ "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
+ "dependencies": {
+ "lodash": "^4.2.1",
+ "lodash-es": "^4.2.1",
+ "loose-envify": "^1.1.0",
+ "symbol-observable": "^1.0.3"
+ }
+ },
+ "node_modules/redux-saga": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz",
+ "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==",
+ "dependencies": {
+ "@redux-saga/core": "^1.0.0"
+ }
+ },
"node_modules/reflect-metadata": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
@@ -15361,9 +20178,7 @@
"node_modules/regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/regex-not": {
"version": "1.0.2",
@@ -15425,14 +20240,13 @@
}
},
"node_modules/regexp.prototype.flags": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
- "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
- "dev": true,
- "peer": true,
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
},
"engines": {
"node": ">= 0.4"
@@ -15452,30 +20266,6 @@
"url": "https://github.com/sponsors/mysticatea"
}
},
- "node_modules/registry-auth-token": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
- "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
- "dev": true,
- "dependencies": {
- "rc": "^1.2.8"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/registry-url": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
- "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
- "dev": true,
- "dependencies": {
- "rc": "^1.2.8"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/relative-to-absolute-iri": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.6.tgz",
@@ -15602,6 +20392,29 @@
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
+ "node_modules/reselect": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz",
+ "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ=="
+ },
+ "node_modules/reselect-tree": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz",
+ "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==",
+ "dependencies": {
+ "debug": "^3.1.0",
+ "json-pointer": "^0.6.1",
+ "reselect": "^4.0.0"
+ }
+ },
+ "node_modules/reselect-tree/node_modules/debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "dependencies": {
+ "ms": "^2.1.1"
+ }
+ },
"node_modules/resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@@ -15614,6 +20427,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
+ },
"node_modules/resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -15652,11 +20470,22 @@
"peer": true
},
"node_modules/responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"dependencies": {
- "lowercase-keys": "^1.0.0"
+ "lowercase-keys": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/responselike/node_modules/lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==",
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/restore-cursor": {
@@ -15751,11 +20580,6 @@
"rlp": "bin/rlp"
}
},
- "node_modules/rlp/node_modules/bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- },
"node_modules/rolling-rate-limiter": {
"version": "0.2.13",
"resolved": "https://registry.npmjs.org/rolling-rate-limiter/-/rolling-rate-limiter-0.2.13.tgz",
@@ -15777,11 +20601,15 @@
"aproba": "^1.1.1"
}
},
+ "node_modules/rustbn.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA=="
+ },
"node_modules/rxjs": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
- "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
- "dev": true,
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz",
+ "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==",
"dependencies": {
"tslib": "^2.1.0"
}
@@ -15791,6 +20619,15 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
+ "node_modules/safe-event-emitter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz",
+ "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==",
+ "deprecated": "Renamed to @metamask/safe-event-emitter",
+ "dependencies": {
+ "events": "^3.0.0"
+ }
+ },
"node_modules/safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
@@ -15893,10 +20730,18 @@
"integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=",
"dev": true
},
+ "node_modules/semaphore": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
+ "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -15907,27 +20752,6 @@
"node": ">=10"
}
},
- "node_modules/semver-diff": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
- "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
- "dev": true,
- "dependencies": {
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/semver-diff/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
"node_modules/send": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
@@ -15969,6 +20793,36 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
},
+ "node_modules/sentence-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==",
+ "dependencies": {
+ "no-case": "^2.2.0",
+ "upper-case-first": "^1.1.2"
+ }
+ },
+ "node_modules/sentence-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/sentence-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "node_modules/sentence-case/node_modules/upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
+ "dependencies": {
+ "upper-case": "^1.1.1"
+ }
+ },
"node_modules/seq-queue": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
@@ -16083,7 +20937,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
"dependencies": {
"randombytes": "^2.1.0"
}
@@ -16127,6 +20980,14 @@
"resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz",
"integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw=="
},
+ "node_modules/set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/set-value": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
@@ -16165,6 +21026,11 @@
"sha.js": "bin.js"
}
},
+ "node_modules/shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
"node_modules/shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -16236,6 +21102,17 @@
"simple-concat": "^1.0.0"
}
},
+ "node_modules/simple-get/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "dependencies": {
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/simple-git": {
"version": "3.7.1",
"resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.7.1.tgz",
@@ -16263,10 +21140,74 @@
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
- "node_modules/sleep-async": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sleep-async/-/sleep-async-1.0.5.tgz",
- "integrity": "sha512-G2B+GBBshG+gSKZZeCTX5ONnF7XVUVpYP0O4QYWmXH6XIpEUfcFbWWwQKleZixg68PWEArvVEi23159F7ohlUQ=="
+ "node_modules/simple-update-notifier": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz",
+ "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==",
+ "dev": true,
+ "dependencies": {
+ "semver": "~7.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/simple-update-notifier/node_modules/semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/sinon": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz",
+ "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==",
+ "dev": true,
+ "dependencies": {
+ "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@sinonjs/samsam": "^6.1.1",
+ "diff": "^5.0.0",
+ "nise": "^5.1.1",
+ "supports-color": "^7.2.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/sinon"
+ }
+ },
+ "node_modules/sinon/node_modules/diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/sinon/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/sinon/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/slice-ansi": {
"version": "4.0.0",
@@ -16323,6 +21264,27 @@
"node": ">=8.0.0"
}
},
+ "node_modules/snake-case": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==",
+ "dependencies": {
+ "no-case": "^2.2.0"
+ }
+ },
+ "node_modules/snake-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/snake-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
"node_modules/snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -16575,7 +21537,6 @@
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -17045,17 +22006,17 @@
}
},
"node_modules/streamsearch": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
- "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=",
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
"engines": {
- "node": ">=0.8.0"
+ "node": ">=10.0.0"
}
},
"node_modules/strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==",
"engines": {
"node": ">=0.10.0"
}
@@ -17130,24 +22091,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -17216,6 +22179,20 @@
"node": ">=4"
}
},
+ "node_modules/swap-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "node_modules/swap-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
"node_modules/swarm-js": {
"version": "0.1.40",
"resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
@@ -17257,17 +22234,15 @@
"ieee754": "^1.1.13"
}
},
- "node_modules/swarm-js/node_modules/eth-lib": {
- "version": "0.1.29",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
- "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
+ "node_modules/swarm-js/node_modules/decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"dependencies": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
+ "mimic-response": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
"node_modules/swarm-js/node_modules/fs-extra": {
@@ -17283,7 +22258,7 @@
"node_modules/swarm-js/node_modules/get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==",
"engines": {
"node": ">=4"
}
@@ -17315,7 +22290,7 @@
"node_modules/swarm-js/node_modules/is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==",
"engines": {
"node": ">=0.10.0"
}
@@ -17323,7 +22298,15 @@
"node_modules/swarm-js/node_modules/is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/swarm-js/node_modules/lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
"engines": {
"node": ">=0.10.0"
}
@@ -17339,7 +22322,7 @@
"node_modules/swarm-js/node_modules/p-timeout": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
"dependencies": {
"p-finally": "^1.0.0"
},
@@ -17347,21 +22330,10 @@
"node": ">=4"
}
},
- "node_modules/swarm-js/node_modules/prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/swarm-js/node_modules/url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "dependencies": {
- "prepend-http": "^1.0.1"
- },
+ "node_modules/symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
"engines": {
"node": ">=0.10.0"
}
@@ -17453,11 +22425,11 @@
}
},
"node_modules/tar/node_modules/mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dependencies": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
},
"bin": {
"mkdirp": "bin/cmd.js"
@@ -17488,9 +22460,9 @@
"integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
},
"node_modules/terser": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
- "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
+ "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
"dev": true,
"peer": true,
"dependencies": {
@@ -17824,7 +22796,7 @@
"node_modules/timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==",
"engines": {
"node": ">=0.10.0"
}
@@ -17865,6 +22837,28 @@
"next-tick": "1"
}
},
+ "node_modules/title-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==",
+ "dependencies": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.0.3"
+ }
+ },
+ "node_modules/title-case/node_modules/lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "node_modules/title-case/node_modules/no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "dependencies": {
+ "lower-case": "^1.1.1"
+ }
+ },
"node_modules/tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@@ -17888,7 +22882,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -17954,7 +22947,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"dependencies": {
"is-number": "^7.0.0"
},
@@ -18127,11 +23119,48 @@
"node": "*"
}
},
+ "node_modules/treeify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
+ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
"node_modules/triple-beam": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
},
+ "node_modules/truffle": {
+ "version": "5.5.26",
+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.5.26.tgz",
+ "integrity": "sha512-czL1BxabxFRhH8AK2LrF7d6hO8zS74meccM0dLxh78ahEAGx2BRPfw2dUZp2Ad5kVvVZGIedJeg9hhpXbVuIAw==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "@truffle/db-loader": "^0.1.28",
+ "@truffle/debugger": "^11.0.4",
+ "app-module-path": "^2.2.0",
+ "ganache": "7.4.0",
+ "mocha": "9.2.2",
+ "original-require": "^1.0.1"
+ },
+ "bin": {
+ "truffle": "build/cli.bundled.js"
+ },
+ "optionalDependencies": {
+ "@truffle/db": "^1.0.18"
+ }
+ },
+ "node_modules/truffle-assertions": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/truffle-assertions/-/truffle-assertions-0.9.2.tgz",
+ "integrity": "sha512-9g2RhaxU2F8DeWhqoGQvL/bV8QVoSnQ6PY+ZPvYRP5eF7+/8LExb4mjLx/FeliLTjc3Tv1SABG05Gu5qQ/ErmA==",
+ "dependencies": {
+ "assertion-error": "^1.1.0",
+ "lodash.isequal": "^4.5.0"
+ }
+ },
"node_modules/truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -18154,9 +23183,9 @@
}
},
"node_modules/tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"node_modules/tty-browserify": {
"version": "0.0.0",
@@ -18181,6 +23210,11 @@
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
+ "node_modules/tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
+ },
"node_modules/type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
@@ -18243,6 +23277,27 @@
"is-typedarray": "^1.0.0"
}
},
+ "node_modules/typescript-compare": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
+ "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==",
+ "dependencies": {
+ "typescript-logic": "^0.0.0"
+ }
+ },
+ "node_modules/typescript-logic": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz",
+ "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q=="
+ },
+ "node_modules/typescript-tuple": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz",
+ "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==",
+ "dependencies": {
+ "typescript-compare": "^0.0.2"
+ }
+ },
"node_modules/uglify-js": {
"version": "3.15.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz",
@@ -18436,13 +23491,13 @@
}
},
"node_modules/unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
},
"funding": {
@@ -18460,6 +23515,14 @@
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
},
+ "node_modules/undici": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz",
+ "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q==",
+ "engines": {
+ "node": ">=12.18"
+ }
+ },
"node_modules/union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -18494,18 +23557,6 @@
"imurmurhash": "^0.1.4"
}
},
- "node_modules/unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "dependencies": {
- "crypto-random-string": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -18635,34 +23686,36 @@
"yarn": "*"
}
},
- "node_modules/update-notifier": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
- "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
- "dev": true,
+ "node_modules/update-browserslist-db": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
+ "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
"dependencies": {
- "boxen": "^5.0.0",
- "chalk": "^4.1.0",
- "configstore": "^5.0.1",
- "has-yarn": "^2.1.0",
- "import-lazy": "^2.1.0",
- "is-ci": "^2.0.0",
- "is-installed-globally": "^0.4.0",
- "is-npm": "^5.0.0",
- "is-yarn-global": "^0.3.0",
- "latest-version": "^5.1.0",
- "pupa": "^2.1.1",
- "semver": "^7.3.4",
- "semver-diff": "^3.1.1",
- "xdg-basedir": "^4.0.0"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
},
- "engines": {
- "node": ">=10"
+ "bin": {
+ "browserslist-lint": "cli.js"
},
- "funding": {
- "url": "https://github.com/yeoman/update-notifier?sponsor=1"
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
}
},
+ "node_modules/upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA=="
+ },
"node_modules/upper-case-first": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
@@ -18705,25 +23758,25 @@
}
},
"node_modules/url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
"dependencies": {
- "prepend-http": "^2.0.0"
+ "prepend-http": "^1.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">=0.10.0"
}
},
"node_modules/url-set-query": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
+ "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg=="
},
"node_modules/url-to-options": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=",
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==",
"engines": {
"node": ">= 4"
}
@@ -18759,12 +23812,12 @@
}
},
"node_modules/utf-8-validate": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz",
- "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==",
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
+ "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
"hasInstallScript": true,
"dependencies": {
- "node-gyp-build": "^4.2.0"
+ "node-gyp-build": "^4.3.0"
},
"engines": {
"node": ">=6.14.2"
@@ -19051,7 +24104,7 @@
"node_modules/watchpack-chokidar2/node_modules/glob-parent": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
"dev": true,
"optional": true,
"peer": true,
@@ -19344,37 +24397,45 @@
"node": ">=0.10.0"
}
},
+ "node_modules/web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/web-streams-ponyfill": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz",
"integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA=="
},
"node_modules/web3": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.0.tgz",
- "integrity": "sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.5.tgz",
+ "integrity": "sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg==",
"hasInstallScript": true,
"dependencies": {
- "web3-bzz": "1.6.0",
- "web3-core": "1.6.0",
- "web3-eth": "1.6.0",
- "web3-eth-personal": "1.6.0",
- "web3-net": "1.6.0",
- "web3-shh": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-bzz": "1.7.5",
+ "web3-core": "1.7.5",
+ "web3-eth": "1.7.5",
+ "web3-eth-personal": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-shh": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-bzz": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.0.tgz",
- "integrity": "sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.5.tgz",
+ "integrity": "sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q==",
"hasInstallScript": true,
"dependencies": {
"@types/node": "^12.12.6",
- "got": "9.6.0",
+ "got": "12.1.0",
"swarm-js": "^0.1.40"
},
"engines": {
@@ -19382,93 +24443,58 @@
}
},
"node_modules/web3-bzz/node_modules/@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
},
"node_modules/web3-core": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.0.tgz",
- "integrity": "sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.5.tgz",
+ "integrity": "sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ==",
"dependencies": {
- "@types/bn.js": "^4.11.5",
+ "@types/bn.js": "^5.1.0",
"@types/node": "^12.12.6",
"bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-requestmanager": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-requestmanager": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-core-helpers": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz",
- "integrity": "sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg==",
- "dependencies": {
- "web3-eth-iban": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-helpers/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz",
+ "integrity": "sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ==",
"dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "web3-eth-iban": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-core-method": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.0.tgz",
- "integrity": "sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.5.tgz",
+ "integrity": "sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg==",
"dependencies": {
- "@ethereumjs/common": "^2.4.0",
- "@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-core-method/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "@ethersproject/transactions": "^5.6.2",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-core-promievent": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz",
- "integrity": "sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz",
+ "integrity": "sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww==",
"dependencies": {
"eventemitter3": "4.0.4"
},
@@ -19482,27 +24508,27 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
"node_modules/web3-core-requestmanager": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz",
- "integrity": "sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz",
+ "integrity": "sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw==",
"dependencies": {
"util": "^0.12.0",
- "web3-core-helpers": "1.6.0",
- "web3-providers-http": "1.6.0",
- "web3-providers-ipc": "1.6.0",
- "web3-providers-ws": "1.6.0"
+ "web3-core-helpers": "1.7.5",
+ "web3-providers-http": "1.7.5",
+ "web3-providers-ipc": "1.7.5",
+ "web3-providers-ws": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-core-subscriptions": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz",
- "integrity": "sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz",
+ "integrity": "sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww==",
"dependencies": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.6.0"
+ "web3-core-helpers": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
@@ -19514,99 +24540,80 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
"node_modules/web3-core/node_modules/@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
- },
- "node_modules/web3-core/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
},
"node_modules/web3-eth": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.0.tgz",
- "integrity": "sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w==",
- "dependencies": {
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-eth-accounts": "1.6.0",
- "web3-eth-contract": "1.6.0",
- "web3-eth-ens": "1.6.0",
- "web3-eth-iban": "1.6.0",
- "web3-eth-personal": "1.6.0",
- "web3-net": "1.6.0",
- "web3-utils": "1.6.0"
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.5.tgz",
+ "integrity": "sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw==",
+ "dependencies": {
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-eth-accounts": "1.7.5",
+ "web3-eth-contract": "1.7.5",
+ "web3-eth-ens": "1.7.5",
+ "web3-eth-iban": "1.7.5",
+ "web3-eth-personal": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-abi": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz",
- "integrity": "sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA==",
- "dependencies": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-abi/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz",
+ "integrity": "sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A==",
"dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "@ethersproject/abi": "^5.6.3",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-accounts": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz",
- "integrity": "sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz",
+ "integrity": "sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg==",
"dependencies": {
- "@ethereumjs/common": "^2.3.0",
- "@ethereumjs/tx": "^3.2.1",
+ "@ethereumjs/common": "^2.5.0",
+ "@ethereumjs/tx": "^3.3.2",
"crypto-browserify": "3.12.0",
"eth-lib": "0.2.8",
"ethereumjs-util": "^7.0.10",
"scrypt-js": "^3.0.1",
"uuid": "3.3.2",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
+ "node_modules/web3-eth-accounts/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "node_modules/web3-eth-accounts/node_modules/eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "dependencies": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
"node_modules/web3-eth-accounts/node_modules/uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
@@ -19616,238 +24623,121 @@
"uuid": "bin/uuid"
}
},
- "node_modules/web3-eth-accounts/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
"node_modules/web3-eth-contract": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz",
- "integrity": "sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw==",
- "dependencies": {
- "@types/bn.js": "^4.11.5",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-contract/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz",
+ "integrity": "sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg==",
"dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "@types/bn.js": "^5.1.0",
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-ens": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz",
- "integrity": "sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz",
+ "integrity": "sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A==",
"dependencies": {
"content-hash": "^2.5.2",
"eth-ens-namehash": "2.0.8",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-eth-contract": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-ens/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-eth-contract": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-iban": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz",
- "integrity": "sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz",
+ "integrity": "sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q==",
"dependencies": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth-iban/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "bn.js": "^5.2.1",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-personal": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz",
- "integrity": "sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz",
+ "integrity": "sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ==",
"dependencies": {
"@types/node": "^12.12.6",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-net": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-eth-personal/node_modules/@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
- },
- "node_modules/web3-eth-personal/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-eth/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
},
"node_modules/web3-net": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.0.tgz",
- "integrity": "sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q==",
- "dependencies": {
- "web3-core": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/web3-net/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.5.tgz",
+ "integrity": "sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA==",
"dependencies": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
+ "web3-core": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-utils": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-providers-http": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.0.tgz",
- "integrity": "sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.5.tgz",
+ "integrity": "sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA==",
"dependencies": {
- "web3-core-helpers": "1.6.0",
- "xhr2-cookies": "1.1.0"
+ "abortcontroller-polyfill": "^1.7.3",
+ "cross-fetch": "^3.1.4",
+ "es6-promise": "^4.2.8",
+ "web3-core-helpers": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-providers-ipc": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz",
- "integrity": "sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz",
+ "integrity": "sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q==",
"dependencies": {
"oboe": "2.1.5",
- "web3-core-helpers": "1.6.0"
+ "web3-core-helpers": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/web3-providers-ws": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz",
- "integrity": "sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz",
+ "integrity": "sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg==",
"dependencies": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.6.0",
+ "web3-core-helpers": "1.7.5",
"websocket": "^1.0.32"
},
"engines": {
@@ -19860,26 +24750,26 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
"node_modules/web3-shh": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.0.tgz",
- "integrity": "sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.5.tgz",
+ "integrity": "sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A==",
"hasInstallScript": true,
"dependencies": {
- "web3-core": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-net": "1.6.0"
+ "web3-core": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-net": "1.7.5"
},
"engines": {
"node": ">=8.0.0"
}
},
- "node_modules/web3/node_modules/web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
+ "node_modules/web3-utils": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.5.tgz",
+ "integrity": "sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw==",
"dependencies": {
- "bn.js": "^4.11.9",
+ "bn.js": "^5.2.1",
"ethereum-bloom-filters": "^1.0.6",
"ethereumjs-util": "^7.1.0",
"ethjs-unit": "0.1.6",
@@ -20234,7 +25124,12 @@
"node_modules/websocket/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/whatwg-fetch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
+ "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
},
"node_modules/whatwg-url": {
"version": "5.0.0",
@@ -20288,16 +25183,16 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/which-typed-array": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz",
- "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
+ "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
"dependencies": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
- "es-abstract": "^1.18.5",
- "foreach": "^2.0.5",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
"has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.7"
+ "is-typed-array": "^1.1.9"
},
"engines": {
"node": ">= 0.4"
@@ -20306,18 +25201,6 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/widest-line": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/winston": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz",
@@ -20451,15 +25334,6 @@
"ultron": "~1.1.0"
}
},
- "node_modules/xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
"node_modules/xhr": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
@@ -20496,7 +25370,7 @@
"node_modules/xhr2-cookies": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
- "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=",
+ "integrity": "sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==",
"dependencies": {
"cookiejar": "^2.1.1"
}
@@ -20547,7 +25421,7 @@
"node_modules/yaeti": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=",
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug==",
"engines": {
"node": ">=0.10.32"
}
@@ -20603,7 +25477,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
"dependencies": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -20618,7 +25491,6 @@
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -20630,7 +25502,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -20706,7 +25577,6 @@
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
"integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
"engines": {
"node": ">=10"
},
@@ -20725,16 +25595,14 @@
}
},
"@babel/compat-data": {
- "version": "7.15.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz",
- "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==",
- "dev": true
+ "version": "7.18.8",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz",
+ "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ=="
},
"@babel/core": {
"version": "7.15.5",
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.5.tgz",
"integrity": "sha512-pYgXxiwAgQpgM1bNkZsDEq85f0ggXMA5L7c+o3tskGMh2BunCI9QUwB9Z4jpvXUOuMdyGKiGKQiRe11VS6Jzvg==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.15.4",
@@ -20757,7 +25625,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
@@ -20766,7 +25633,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
"integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
"requires": {
"minimist": "^1.2.5"
}
@@ -20774,8 +25640,7 @@
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
@@ -20802,7 +25667,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.4.tgz",
"integrity": "sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4",
"jsesc": "^2.5.1",
@@ -20810,22 +25674,40 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz",
- "integrity": "sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ==",
- "dev": true,
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz",
+ "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==",
"requires": {
- "@babel/compat-data": "^7.15.0",
- "@babel/helper-validator-option": "^7.14.5",
- "browserslist": "^4.16.6",
+ "@babel/compat-data": "^7.18.8",
+ "@babel/helper-validator-option": "^7.18.6",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
},
"dependencies": {
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "@babel/helper-define-polyfill-provider": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
+ "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
+ "requires": {
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-plugin-utils": "^7.16.7",
+ "debug": "^4.1.1",
+ "lodash.debounce": "^4.0.8",
+ "resolve": "^1.14.2",
+ "semver": "^6.1.2"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
}
}
},
@@ -20833,7 +25715,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz",
"integrity": "sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw==",
- "dev": true,
"requires": {
"@babel/helper-get-function-arity": "^7.15.4",
"@babel/template": "^7.15.4",
@@ -20844,7 +25725,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz",
"integrity": "sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
@@ -20853,7 +25733,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz",
"integrity": "sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
@@ -20862,25 +25741,22 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz",
"integrity": "sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
},
"@babel/helper-module-imports": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz",
- "integrity": "sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==",
- "dev": true,
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz",
+ "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==",
"requires": {
- "@babel/types": "^7.15.4"
+ "@babel/types": "^7.18.6"
}
},
"@babel/helper-module-transforms": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz",
"integrity": "sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw==",
- "dev": true,
"requires": {
"@babel/helper-module-imports": "^7.15.4",
"@babel/helper-replace-supers": "^7.15.4",
@@ -20896,16 +25772,19 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz",
"integrity": "sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
},
+ "@babel/helper-plugin-utils": {
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz",
+ "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w=="
+ },
"@babel/helper-replace-supers": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz",
"integrity": "sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw==",
- "dev": true,
"requires": {
"@babel/helper-member-expression-to-functions": "^7.15.4",
"@babel/helper-optimise-call-expression": "^7.15.4",
@@ -20917,7 +25796,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz",
"integrity": "sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
@@ -20926,27 +25804,29 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz",
"integrity": "sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw==",
- "dev": true,
"requires": {
"@babel/types": "^7.15.4"
}
},
+ "@babel/helper-string-parser": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz",
+ "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw=="
+ },
"@babel/helper-validator-identifier": {
- "version": "7.14.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz",
- "integrity": "sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g=="
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz",
+ "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g=="
},
"@babel/helper-validator-option": {
- "version": "7.14.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz",
- "integrity": "sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow==",
- "dev": true
+ "version": "7.18.6",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz",
+ "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw=="
},
"@babel/helpers": {
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.15.4.tgz",
"integrity": "sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ==",
- "dev": true,
"requires": {
"@babel/template": "^7.15.4",
"@babel/traverse": "^7.15.4",
@@ -20983,15 +25863,32 @@
"@babel/parser": {
"version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
- "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
- "dev": true
+ "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q=="
+ },
+ "@babel/plugin-transform-runtime": {
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
+ "integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
+ "requires": {
+ "@babel/helper-module-imports": "^7.18.6",
+ "@babel/helper-plugin-utils": "^7.18.9",
+ "babel-plugin-polyfill-corejs2": "^0.3.2",
+ "babel-plugin-polyfill-corejs3": "^0.5.3",
+ "babel-plugin-polyfill-regenerator": "^0.4.0",
+ "semver": "^6.3.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
},
"@babel/runtime": {
- "version": "7.15.4",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.15.4.tgz",
- "integrity": "sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw==",
- "dev": true,
- "peer": true,
+ "version": "7.18.9",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
+ "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -21011,7 +25908,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.15.4.tgz",
"integrity": "sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
"@babel/parser": "^7.15.4",
@@ -21022,7 +25918,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
@@ -21033,7 +25928,6 @@
"version": "7.15.4",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.4.tgz",
"integrity": "sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA==",
- "dev": true,
"requires": {
"@babel/code-frame": "^7.14.5",
"@babel/generator": "^7.15.4",
@@ -21050,7 +25944,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.14.5.tgz",
"integrity": "sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw==",
- "dev": true,
"requires": {
"@babel/highlight": "^7.14.5"
}
@@ -21058,18 +25951,17 @@
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
}
}
},
"@babel/types": {
- "version": "7.15.6",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
- "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
- "dev": true,
+ "version": "7.18.10",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz",
+ "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==",
"requires": {
- "@babel/helper-validator-identifier": "^7.14.9",
+ "@babel/helper-string-parser": "^7.18.10",
+ "@babel/helper-validator-identifier": "^7.18.6",
"to-fast-properties": "^2.0.0"
}
},
@@ -23332,221 +28224,340 @@
}
},
"@ethereumjs/common": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.5.0.tgz",
- "integrity": "sha512-DEHjW6e38o+JmB/NO3GZBpW4lpaiBpkFgXF6jLcJ6gETBYpEyaA5nTimsWBUJR3Vmtm/didUEbNjajskugZORg==",
+ "version": "2.6.5",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz",
+ "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==",
"requires": {
"crc-32": "^1.2.0",
- "ethereumjs-util": "^7.1.1"
+ "ethereumjs-util": "^7.1.5"
}
},
"@ethereumjs/tx": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.3.2.tgz",
- "integrity": "sha512-6AaJhwg4ucmwTvw/1qLaZUX5miWrwZ4nLOUsKyb/HtzS3BMw/CasKhdi1ims9mBKeK9sOJCH4qGKOBGyJCeeog==",
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz",
+ "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==",
"requires": {
- "@ethereumjs/common": "^2.5.0",
- "ethereumjs-util": "^7.1.2"
+ "@ethereumjs/common": "^2.6.4",
+ "ethereumjs-util": "^7.1.5"
}
},
"@ethersproject/abi": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.0.7.tgz",
- "integrity": "sha512-Cqktk+hSIckwP/W8O47Eef60VwmoSC/L3lY0+dIBhQPCNn9E4V7rwmm2aFrNRRDJfFlGuZ1khkQUOc3oBX+niw==",
+ "version": "5.6.4",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz",
+ "integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==",
"requires": {
- "@ethersproject/address": "^5.0.4",
- "@ethersproject/bignumber": "^5.0.7",
- "@ethersproject/bytes": "^5.0.4",
- "@ethersproject/constants": "^5.0.4",
- "@ethersproject/hash": "^5.0.4",
- "@ethersproject/keccak256": "^5.0.3",
- "@ethersproject/logger": "^5.0.5",
- "@ethersproject/properties": "^5.0.3",
- "@ethersproject/strings": "^5.0.4"
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/abstract-provider": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.4.1.tgz",
- "integrity": "sha512-3EedfKI3LVpjSKgAxoUaI+gB27frKsxzm+r21w9G60Ugk+3wVLQwhi1LsEJAKNV7WoZc8CIpNrATlL1QFABjtQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz",
+ "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==",
"requires": {
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/networks": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/transactions": "^5.4.0",
- "@ethersproject/web": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1"
}
},
"@ethersproject/abstract-signer": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.4.1.tgz",
- "integrity": "sha512-SkkFL5HVq1k4/25dM+NWP9MILgohJCgGv5xT5AcRruGz4ILpfHeBtO/y6j+Z3UN/PAjDeb4P7E51Yh8wcGNLGA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz",
+ "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==",
"requires": {
- "@ethersproject/abstract-provider": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0"
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/address": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.4.0.tgz",
- "integrity": "sha512-SD0VgOEkcACEG/C6xavlU1Hy3m5DGSXW3CUHkaaEHbAPPsgi0coP5oNPsxau8eTlZOk/bpa/hKeCNoK5IzVI2Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz",
+ "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==",
"requires": {
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/rlp": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/rlp": "^5.6.1"
}
},
"@ethersproject/base64": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.4.0.tgz",
- "integrity": "sha512-CjQw6E17QDSSC5jiM9YpF7N1aSCHmYGMt9bWD8PWv6YPMxjsys2/Q8xLrROKI3IWJ7sFfZ8B3flKDTM5wlWuZQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz",
+ "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==",
"requires": {
- "@ethersproject/bytes": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1"
+ }
+ },
+ "@ethersproject/basex": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz",
+ "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/bignumber": {
- "version": "5.4.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.4.2.tgz",
- "integrity": "sha512-oIBDhsKy5bs7j36JlaTzFgNPaZjiNDOXsdSgSpXRucUl+UA6L/1YLlFeI3cPAoodcenzF4nxNPV13pcy7XbWjA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
+ "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
"requires": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "bn.js": "^4.11.9"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "bn.js": "^5.2.1"
}
},
"@ethersproject/bytes": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.4.0.tgz",
- "integrity": "sha512-H60ceqgTHbhzOj4uRc/83SCN9d+BSUnOkrr2intevqdtEMO1JFVZ1XL84OEZV+QjV36OaZYxtnt4lGmxcGsPfA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz",
+ "integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==",
"requires": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/constants": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.4.0.tgz",
- "integrity": "sha512-tzjn6S7sj9+DIIeKTJLjK9WGN2Tj0P++Z8ONEIlZjyoTkBuODN+0VfhAyYksKi43l1Sx9tX2VlFfzjfmr5Wl3Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
+ "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
"requires": {
- "@ethersproject/bignumber": "^5.4.0"
+ "@ethersproject/bignumber": "^5.6.2"
}
},
"@ethersproject/hash": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.4.0.tgz",
- "integrity": "sha512-xymAM9tmikKgbktOCjW60Z5sdouiIIurkZUr9oW5NOex5uwxrbsYG09kb5bMcNjlVeJD3yPivTNzViIs1GCbqA==",
- "requires": {
- "@ethersproject/abstract-signer": "^5.4.0",
- "@ethersproject/address": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/strings": "^5.4.0"
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz",
+ "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==",
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
+ }
+ },
+ "@ethersproject/hdnode": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz",
+ "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
+ }
+ },
+ "@ethersproject/json-wallets": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz",
+ "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "aes-js": "3.0.0",
+ "scrypt-js": "3.0.1"
+ },
+ "dependencies": {
+ "aes-js": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==",
+ "dev": true
+ }
}
},
"@ethersproject/keccak256": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.4.0.tgz",
- "integrity": "sha512-FBI1plWet+dPUvAzPAeHzRKiPpETQzqSUWR1wXJGHVWi4i8bOSrpC3NwpkPjgeXG7MnugVc1B42VbfnQikyC/A==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz",
+ "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==",
"requires": {
- "@ethersproject/bytes": "^5.4.0",
- "js-sha3": "0.5.7"
- },
- "dependencies": {
- "js-sha3": {
- "version": "0.5.7",
- "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
- }
+ "@ethersproject/bytes": "^5.6.1",
+ "js-sha3": "0.8.0"
}
},
"@ethersproject/logger": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.4.1.tgz",
- "integrity": "sha512-DZ+bRinnYLPw1yAC64oRl0QyVZj43QeHIhVKfD/+YwSz4wsv1pfwb5SOFjz+r710YEWzU6LrhuSjpSO+6PeE4A=="
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz",
+ "integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg=="
},
"@ethersproject/networks": {
- "version": "5.4.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.4.2.tgz",
- "integrity": "sha512-eekOhvJyBnuibfJnhtK46b8HimBc5+4gqpvd1/H9LEl7Q7/qhsIhM81dI9Fcnjpk3jB1aTy6bj0hz3cifhNeYw==",
+ "version": "5.6.4",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz",
+ "integrity": "sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ==",
"requires": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/logger": "^5.6.0"
+ }
+ },
+ "@ethersproject/pbkdf2": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz",
+ "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1"
}
},
"@ethersproject/properties": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.4.1.tgz",
- "integrity": "sha512-cyCGlF8wWlIZyizsj2PpbJ9I7rIlUAfnHYwy/T90pdkSn/NFTa5YWZx2wTJBe9V7dD65dcrrEMisCRUJiq6n3w==",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz",
+ "integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==",
"requires": {
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/logger": "^5.6.0"
+ }
+ },
+ "@ethersproject/random": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz",
+ "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/rlp": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.4.0.tgz",
- "integrity": "sha512-0I7MZKfi+T5+G8atId9QaQKHRvvasM/kqLyAH4XxBCBchAooH2EX5rL9kYZWwcm3awYV+XC7VF6nLhfeQFKVPg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz",
+ "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==",
"requires": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
}
},
- "@ethersproject/signing-key": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.4.0.tgz",
- "integrity": "sha512-q8POUeywx6AKg2/jX9qBYZIAmKSB4ubGXdQ88l40hmATj29JnG5pp331nAWwwxPn2Qao4JpWHNZsQN+bPiSW9A==",
+ "@ethersproject/sha2": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz",
+ "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==",
+ "dev": true,
"requires": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "bn.js": "^4.11.9",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "hash.js": "1.1.7"
+ }
+ },
+ "@ethersproject/signing-key": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz",
+ "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==",
+ "requires": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "bn.js": "^5.2.1",
"elliptic": "6.5.4",
"hash.js": "1.1.7"
}
},
"@ethersproject/strings": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.4.0.tgz",
- "integrity": "sha512-k/9DkH5UGDhv7aReXLluFG5ExurwtIpUfnDNhQA29w896Dw3i4uDTz01Quaptbks1Uj9kI8wo9tmW73wcIEaWA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz",
+ "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==",
"requires": {
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/constants": "^5.4.0",
- "@ethersproject/logger": "^5.4.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/transactions": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.4.0.tgz",
- "integrity": "sha512-s3EjZZt7xa4BkLknJZ98QGoIza94rVjaEed0rzZ/jB9WrIuu/1+tjvYCWzVrystXtDswy7TPBeIepyXwSYa4WQ==",
- "requires": {
- "@ethersproject/address": "^5.4.0",
- "@ethersproject/bignumber": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/constants": "^5.4.0",
- "@ethersproject/keccak256": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/rlp": "^5.4.0",
- "@ethersproject/signing-key": "^5.4.0"
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz",
+ "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==",
+ "requires": {
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2"
+ }
+ },
+ "@ethersproject/wallet": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz",
+ "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/json-wallets": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"@ethersproject/web": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.4.0.tgz",
- "integrity": "sha512-1bUusGmcoRLYgMn6c1BLk1tOKUIFuTg8j+6N8lYlbMpDesnle+i3pGSagGNvwjaiLo4Y5gBibwctpPRmjrh4Og==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz",
+ "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==",
"requires": {
- "@ethersproject/base64": "^5.4.0",
- "@ethersproject/bytes": "^5.4.0",
- "@ethersproject/logger": "^5.4.0",
- "@ethersproject/properties": "^5.4.0",
- "@ethersproject/strings": "^5.4.0"
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
+ }
+ },
+ "@ethersproject/wordlists": {
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz",
+ "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==",
+ "dev": true,
+ "requires": {
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/logger": "^5.6.0",
+ "@ethersproject/properties": "^5.6.0",
+ "@ethersproject/strings": "^5.6.1"
}
},
"@humanwhocodes/config-array": {
@@ -23666,6 +28677,409 @@
"xml2js": "^0.4.23"
}
},
+ "@noble/hashes": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.2.tgz",
+ "integrity": "sha512-KYRCASVTv6aeUi1tsF8/vpyR7zpfs3FUzy2Jqm+MU+LmUKhQ0y2FpfwqkCcxSg2ua4GALJd8k2R76WxwZGbQpA=="
+ },
+ "@noble/secp256k1": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.6.3.tgz",
+ "integrity": "sha512-T04e4iTurVy7I8Sw4+c5OSN9/RkPlo1uKxAomtxQNLq8j1uPAqnsqG1bqvY3Jv7c13gyr6dui0zmh/I3+f/JaQ=="
+ },
+ "@openzeppelin/contracts": {
+ "version": "4.7.3",
+ "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.7.3.tgz",
+ "integrity": "sha512-dGRS0agJzu8ybo44pCIf3xBaPQN/65AIXNgK8+4gzKd5kbvlqyxryUYVLJv7fK98Seyd2hDZzVEHSWAh0Bt1Yw=="
+ },
+ "@polkadot/api": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api/-/api-9.2.1.tgz",
+ "integrity": "sha512-5cg47N2BX6PbABYrfJIgA78glqLutN1M88y67UWulj17rM6cYmmi26tlb209zOhNZ7cjBhQDPHN/pbdUiL4zgg==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api-augment": "9.2.1",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/api-derive": "9.2.1",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/rpc-provider": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/types-known": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "eventemitter3": "^4.0.7",
+ "rxjs": "^7.5.6"
+ }
+ },
+ "@polkadot/api-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-augment/-/api-augment-9.2.1.tgz",
+ "integrity": "sha512-QetNP5gBtj6DfyJ//5cDNeaEKnd3lsyas9GDw1MqQCxxT0k+6UpLR5JTzeTnTKYSUz7IMIasU/tpunf/2rUuSQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/api-base": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-9.2.1.tgz",
+ "integrity": "sha512-slc/NzeON1ZZ97/HaWOJF6j7rWn5yHb+q1BCNpWGZ1MLuKW3R4F8Af0AAIBgvCS223NQ4sHaLUoMAcaPdRcbHg==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "rxjs": "^7.5.6"
+ }
+ },
+ "@polkadot/api-derive": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-9.2.1.tgz",
+ "integrity": "sha512-Vdr6eNaybf22whoHu5fsQe0SsjFFZkvV9GZVczf4gf+lxmZ0GSj634QdBqV/j4l/mvgWgiUqT3b9daTRm5oxiA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/api": "9.2.1",
+ "@polkadot/api-augment": "9.2.1",
+ "@polkadot/api-base": "9.2.1",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "rxjs": "^7.5.6"
+ }
+ },
+ "@polkadot/keyring": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-10.1.4.tgz",
+ "integrity": "sha512-dCMejp5heZwKSFeO+1vCHFoo1h1KgNvu4AaKQdNxpyr/3eCINrCFI74/qT9XGypblxd61caOpJcMl8B1R/UWFA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "10.1.4",
+ "@polkadot/util-crypto": "10.1.4"
+ }
+ },
+ "@polkadot/networks": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-10.1.4.tgz",
+ "integrity": "sha512-5wMwqD+DeVMh29OZZBVkA4DQE9EBsUj5FjmUS2CloA8RzE6SV0qL34zhTwOdq95KJV1OoDbp9aGjCBqhEuozKw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "10.1.4",
+ "@substrate/ss58-registry": "^1.25.0"
+ }
+ },
+ "@polkadot/rpc-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-9.2.1.tgz",
+ "integrity": "sha512-ABOLmQPergZJVZB/8YOr0SO/EjZtV4ZzhhgBr/nkX0hLULnjOCAxfFOXqXr7cpa4wjCnIBGkOG3fwVZL2v14FA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-core": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/rpc-core": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-9.2.1.tgz",
+ "integrity": "sha512-4Ns3dbxVESEgjlf1CgpdTTWtRvTdizpJ6NfelbRc8iX7Kg6RMbNeKtPmyRGTzwwMPAoDvNTGSpWmVcN9NscmTQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/rpc-augment": "9.2.1",
+ "@polkadot/rpc-provider": "9.2.1",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "rxjs": "^7.5.6"
+ }
+ },
+ "@polkadot/rpc-provider": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-9.2.1.tgz",
+ "integrity": "sha512-tz8dng70BLJfnORwakw412p3d0OQzaeCLybNo8lxiORoZy37xDTNYOrWXGejgc0sePNdWi8ZTLYy3pk2BGU3Vg==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-support": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "@polkadot/x-fetch": "^10.1.4",
+ "@polkadot/x-global": "^10.1.4",
+ "@polkadot/x-ws": "^10.1.4",
+ "@substrate/connect": "0.7.10",
+ "eventemitter3": "^4.0.7",
+ "mock-socket": "^9.1.5",
+ "nock": "^13.2.9"
+ }
+ },
+ "@polkadot/types": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-9.2.1.tgz",
+ "integrity": "sha512-Z07fIxLVLQXX1386NVI6ov+5jWo4bUX8m+89tnewuqxvVRUhZI8+s350srFZY0B2FjiA73QsE+/EwGFOHtoZfw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/keyring": "^10.1.4",
+ "@polkadot/types-augment": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4",
+ "rxjs": "^7.5.6"
+ }
+ },
+ "@polkadot/types-augment": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-augment/-/types-augment-9.2.1.tgz",
+ "integrity": "sha512-NfQxDreOSkD23b8WhZDJDDxYjr7a1S3HUMr8FIg+z6tvPfqTtr4+l78kUFWdSflK+nId+m4h38PuJS9JKEG6uw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/types-codec": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-9.2.1.tgz",
+ "integrity": "sha512-ChzDKu7Ih1UvDoRyR10Fzu6dnUQcHtoB1XzMNd1oHOv46XUNKpen1JD5uRggoCSYJ38ocAjWnmSgj/VJ+pI8YQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/x-bigint": "^10.1.4"
+ }
+ },
+ "@polkadot/types-create": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-9.2.1.tgz",
+ "integrity": "sha512-ymAiWKjyGJzgLoOamR6EYrFxLhIMTOF2WWUWKO3/mE3puYqsDEtH5rcU78R/lWEVDxGXSaNqYmjhuEyujpWAUw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/types-known": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-9.2.1.tgz",
+ "integrity": "sha512-q0WOsV3R8kxdsMrlmUYvE+XQ8AwxNCe/PaAufA9ArPtlvumc1K6gbQ16Ik2mHKtuZBHO2EQcwdXl9Yr+pijRzw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/networks": "^10.1.4",
+ "@polkadot/types": "9.2.1",
+ "@polkadot/types-codec": "9.2.1",
+ "@polkadot/types-create": "9.2.1",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/types-support": {
+ "version": "9.2.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-9.2.1.tgz",
+ "integrity": "sha512-tphkezOtwSW8wnUCr6Pu/sx+IgtzD4c1YC70ans431ZozbxRaT/pcjir4N3Zg6PQJR+zNwHURKHyeOGpuDCg0g==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/util": "^10.1.4"
+ }
+ },
+ "@polkadot/util": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-10.1.4.tgz",
+ "integrity": "sha512-MHz1UxYXuV+XxPl+GR++yOUE0OCiVd+eJBqLgpjpVJNRkudbAmfGAbB2TNR0+76M0fevIeHj4DGEd0gY6vqKLw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-bigint": "10.1.4",
+ "@polkadot/x-global": "10.1.4",
+ "@polkadot/x-textdecoder": "10.1.4",
+ "@polkadot/x-textencoder": "10.1.4",
+ "@types/bn.js": "^5.1.0",
+ "bn.js": "^5.2.1"
+ }
+ },
+ "@polkadot/util-crypto": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/util-crypto/-/util-crypto-10.1.4.tgz",
+ "integrity": "sha512-6rdUwCdbwmQ0PBWBNYh55RsXAcFjhco/TGLuM7GJ7YufrN9qqv1sr40HlneLbtpiZnfukZ3q/qOpj0h7Hrw2JQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@noble/hashes": "1.1.2",
+ "@noble/secp256k1": "1.6.3",
+ "@polkadot/networks": "10.1.4",
+ "@polkadot/util": "10.1.4",
+ "@polkadot/wasm-crypto": "^6.3.1",
+ "@polkadot/x-bigint": "10.1.4",
+ "@polkadot/x-randomvalues": "10.1.4",
+ "@scure/base": "1.1.1",
+ "ed2curve": "^0.3.0",
+ "tweetnacl": "^1.0.3"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ }
+ }
+ },
+ "@polkadot/wasm-bridge": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-6.3.1.tgz",
+ "integrity": "sha512-1TYkHsb9AEFhU9uZj3biEnN2yKQNzdrwSjiTvfCYnt97pnEkKsZI6cku+YPZQv5w/x9CQa5Yua9e2DVVZSivGA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9"
+ }
+ },
+ "@polkadot/wasm-crypto": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-6.3.1.tgz",
+ "integrity": "sha512-OO8h0qeVkqp4xYZaRVl4iuWOEtq282pNBHDKb6SOJuI2g59eWGcKh4EQU9Me2VP6qzojIqptrkrVt7KQXC68gA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-bridge": "6.3.1",
+ "@polkadot/wasm-crypto-asmjs": "6.3.1",
+ "@polkadot/wasm-crypto-init": "6.3.1",
+ "@polkadot/wasm-crypto-wasm": "6.3.1",
+ "@polkadot/wasm-util": "6.3.1"
+ }
+ },
+ "@polkadot/wasm-crypto-asmjs": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-asmjs/-/wasm-crypto-asmjs-6.3.1.tgz",
+ "integrity": "sha512-zbombRfA5v/mUWQQhgg2YwaxhRmxRIrvskw65x+lruax3b6xPBFDs7yplopiJU3r8h2pTgQvX/DUksvqz2TCRQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9"
+ }
+ },
+ "@polkadot/wasm-crypto-init": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-6.3.1.tgz",
+ "integrity": "sha512-9yaUBcu+snwjJLmPPGl3cyGRQ1afyFGm16qzTM0sgG/ZCfUlK4uk8KWZe+sBUKgoxb2oXY7Y4WklKgQI1YBdfw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-bridge": "6.3.1",
+ "@polkadot/wasm-crypto-asmjs": "6.3.1",
+ "@polkadot/wasm-crypto-wasm": "6.3.1"
+ }
+ },
+ "@polkadot/wasm-crypto-wasm": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-6.3.1.tgz",
+ "integrity": "sha512-idSlzKGVzCfeCMRHsacRvqwojSaTadFxL/Dbls4z1thvfa3U9Ku0d2qVtlwg7Hj+tYWDiuP8Kygs+6bQwfs0XA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/wasm-util": "6.3.1"
+ }
+ },
+ "@polkadot/wasm-util": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-6.3.1.tgz",
+ "integrity": "sha512-12oAv5J7Yoc9m6jixrSaQCxpOkWOyzHx3DMC8qmLjRiwdBWxqLmImOVRVnFsbaxqSbhBIHRuJphVxWE+GZETDg==",
+ "requires": {
+ "@babel/runtime": "^7.18.9"
+ }
+ },
+ "@polkadot/x-bigint": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-10.1.4.tgz",
+ "integrity": "sha512-qgLetTukFhkxNxNcUWMmnrfE9bp4TNbrqNoVBVH7wqSuEVpDPITBXsQ/78LbaaZGWD80Ew0wGxcZ/rqX+dLVUA==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ }
+ },
+ "@polkadot/x-fetch": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-10.1.4.tgz",
+ "integrity": "sha512-hVhLpOvx+ys6klkqWJnINi9FU/JcDnc+6cyU9fa+Dum3mqO1XnngOYDO9mpf5HODIwrFNFmohll9diRP+TW0yQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4",
+ "@types/node-fetch": "^2.6.2",
+ "node-fetch": "^3.2.10"
+ },
+ "dependencies": {
+ "data-uri-to-buffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
+ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
+ },
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ },
+ "node-fetch": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz",
+ "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==",
+ "requires": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ }
+ }
+ }
+ },
+ "@polkadot/x-global": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-10.1.4.tgz",
+ "integrity": "sha512-67f53H872wHvmjmL96DvhC3dG7gKRG1ghEbHXeFIGwkix+9zGEMV9krYW1+OAvGAuCQZqUIUGiJ7lad4Zjb7wQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9"
+ }
+ },
+ "@polkadot/x-randomvalues": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-10.1.4.tgz",
+ "integrity": "sha512-sfYz3GmyG739anj07Y+8PUX+95upO1zlsADAEfK1w1mMpTw97xEoMZf66CduAQOe43gEwQXc/JuKq794C/Hr7Q==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ }
+ },
+ "@polkadot/x-textdecoder": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-10.1.4.tgz",
+ "integrity": "sha512-B8XcAmJLnuppSr4RUNPevh5MH3tWZBwBR0wUsSdIyiGXuncgnkj9jmpbGLgV1tSn+BGxX3SNsRho3/4CNmndWQ==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ }
+ },
+ "@polkadot/x-textencoder": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-10.1.4.tgz",
+ "integrity": "sha512-vDpo0rVV4jBmr0L2tCZPZzxmzV2vZhpH1Dw9H7MpmZSPePz4ZF+o4RBJz/ocwQh3+1qV1SKQm7+fj4lPwUZdEw==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4"
+ }
+ },
+ "@polkadot/x-ws": {
+ "version": "10.1.4",
+ "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-10.1.4.tgz",
+ "integrity": "sha512-hi7hBRRCLlHgqVW2p5TkoJuTxV7sVprl+aAnmcIpPU4J8Ai6PKQvXR+fLK01T8moBYmH5ztHrBWvY/XRzmQ8Vg==",
+ "requires": {
+ "@babel/runtime": "^7.18.9",
+ "@polkadot/x-global": "10.1.4",
+ "@types/websocket": "^1.0.5",
+ "websocket": "^1.0.34"
+ }
+ },
"@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
@@ -23728,10 +29142,107 @@
"@types/node": "*"
}
},
+ "@redux-saga/core": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/core/-/core-1.2.0.tgz",
+ "integrity": "sha512-9n8PeOJT2gyVutH5LUKbCiPFkUZLOM4LWtt5zhbXJa77gzXj9LuEqDj1CVOsfPM0NcHVEhVUQ/Cr++ZZfCNjFg==",
+ "requires": {
+ "@babel/runtime": "^7.6.3",
+ "@redux-saga/deferred": "^1.2.0",
+ "@redux-saga/delay-p": "^1.2.0",
+ "@redux-saga/is": "^1.1.2",
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.2.0",
+ "redux": "^4.0.4",
+ "typescript-tuple": "^2.2.1"
+ },
+ "dependencies": {
+ "redux": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz",
+ "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==",
+ "requires": {
+ "@babel/runtime": "^7.9.2"
+ }
+ }
+ }
+ },
+ "@redux-saga/deferred": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/deferred/-/deferred-1.2.0.tgz",
+ "integrity": "sha512-PJrcqMPN/WdmNyJvI1xwPnktaqEd2F3Lc79bRpjupX5zDO+RgLTekuoWv+cgyfGBVW2iaMTEYhUVlZqvCkGAIg=="
+ },
+ "@redux-saga/delay-p": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/delay-p/-/delay-p-1.2.0.tgz",
+ "integrity": "sha512-neR2QbTZbwNkQ3/LVdltEdfLVyoxmP7OcUys68KgieCuaWBDpfDeXqxkTRz/biCjYqJGezRDgSfTu6wx/44Lfg==",
+ "requires": {
+ "@redux-saga/symbols": "^1.1.2"
+ }
+ },
+ "@redux-saga/is": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/is/-/is-1.1.2.tgz",
+ "integrity": "sha512-OLbunKVsCVNTKEf2cH4TYyNbbPgvmZ52iaxBD4I1fTif4+MTXMa4/Z07L83zW/hTCXwpSZvXogqMqLfex2Tg6w==",
+ "requires": {
+ "@redux-saga/symbols": "^1.1.2",
+ "@redux-saga/types": "^1.1.0"
+ }
+ },
+ "@redux-saga/symbols": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@redux-saga/symbols/-/symbols-1.1.2.tgz",
+ "integrity": "sha512-EfdGnF423glv3uMwLsGAtE6bg+R9MdqlHEzExnfagXPrIiuxwr3bdiAwz3gi+PsrQ3yBlaBpfGLtDG8rf3LgQQ=="
+ },
+ "@redux-saga/types": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@redux-saga/types/-/types-1.2.0.tgz",
+ "integrity": "sha512-SCZVqXX4l3WwVM58eXFtXabJdxGQKY7hvSToV+xivtPwmutCbhOhgJ53JwKGX3HCBwEkzn4t9WItBQKbzNNxyw=="
+ },
+ "@scure/base": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz",
+ "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA=="
+ },
"@sindresorhus/is": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
- "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz",
+ "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw=="
+ },
+ "@sinonjs/commons": {
+ "version": "1.8.3",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
+ "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
+ "dev": true,
+ "requires": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "@sinonjs/fake-timers": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz",
+ "integrity": "sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.7.0"
+ }
+ },
+ "@sinonjs/samsam": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-6.1.1.tgz",
+ "integrity": "sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.6.0",
+ "lodash.get": "^4.4.2",
+ "type-detect": "^4.0.8"
+ }
+ },
+ "@sinonjs/text-encoding": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz",
+ "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
+ "dev": true
},
"@stablelib/aead": {
"version": "1.0.1",
@@ -23859,22 +29370,884 @@
"@stablelib/wipe": "^1.0.1"
}
},
+ "@substrate/connect": {
+ "version": "0.7.10",
+ "resolved": "https://registry.npmjs.org/@substrate/connect/-/connect-0.7.10.tgz",
+ "integrity": "sha512-WNdW18e0I696/AQjrAXdMD9W8YaKLTcPr2Cu8scSwiUT40in84KEzi+g+P367cE2etAc+Dvu8vNDEQTbUPNqEg==",
+ "requires": {
+ "@substrate/connect-extension-protocol": "^1.0.1",
+ "@substrate/smoldot-light": "0.6.27",
+ "eventemitter3": "^4.0.7"
+ }
+ },
+ "@substrate/connect-extension-protocol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-1.0.1.tgz",
+ "integrity": "sha512-161JhCC1csjH3GE5mPLEd7HbWtwNSPJBg3p1Ksz9SFlTzj/bgEwudiRN2y5i0MoLGCIJRYKyKGMxVnd29PzNjg=="
+ },
+ "@substrate/smoldot-light": {
+ "version": "0.6.27",
+ "resolved": "https://registry.npmjs.org/@substrate/smoldot-light/-/smoldot-light-0.6.27.tgz",
+ "integrity": "sha512-Wy3fbyfZqR3HLynuxeBkUunZsrbqpsmFN+D0/8cVIHZbO7WDwJsmCUc32yO5r+v6s/T97L7FOJHEyMWmRfnKAQ==",
+ "requires": {
+ "pako": "^2.0.4",
+ "websocket": "^1.0.32"
+ },
+ "dependencies": {
+ "pako": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+ "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
+ }
+ }
+ },
+ "@substrate/ss58-registry": {
+ "version": "1.25.0",
+ "resolved": "https://registry.npmjs.org/@substrate/ss58-registry/-/ss58-registry-1.25.0.tgz",
+ "integrity": "sha512-LmCH4QJRdHaeLsLTPSgJaXguMoIW+Ig9fA9LRPpeya9HefVAJ7gZuUYinldv+QmX7evNm5CL0rspNUS8l1DvXg=="
+ },
"@szmarczak/http-timer": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
- "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
"requires": {
- "defer-to-connect": "^1.0.1"
+ "defer-to-connect": "^2.0.1"
+ }
+ },
+ "@truffle/abi-utils": {
+ "version": "0.2.16",
+ "resolved": "https://registry.npmjs.org/@truffle/abi-utils/-/abi-utils-0.2.16.tgz",
+ "integrity": "sha512-FCDANbJM5UJ0Mm61Z9MmQ3DVnMCCmMgOSFvGDORyYqHiXdS6uK0n77pN5tuUUCles8YIpgnCdijMWs8HoaRSMw==",
+ "requires": {
+ "change-case": "3.0.2",
+ "faker": "5.5.3",
+ "fast-check": "3.1.1"
+ }
+ },
+ "@truffle/code-utils": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@truffle/code-utils/-/code-utils-2.0.0.tgz",
+ "integrity": "sha512-qvx3MiBbnCgiNeKFnhQ7wpOQMkXz9ca5E72WZAFIxRg+0wYAR+u7e+DXQe88xTjthC2OP3xDNSeYcb57NIU8Pw==",
+ "requires": {
+ "cbor": "^5.2.0"
+ }
+ },
+ "@truffle/codec": {
+ "version": "0.14.1",
+ "resolved": "https://registry.npmjs.org/@truffle/codec/-/codec-0.14.1.tgz",
+ "integrity": "sha512-ULvtciwbdUANe7VNsPCAIWSrxm0CFu145VVVxJ+yE1xHY9TiLKHOf+CBH2sMW3mVkbt5HwVUF5DGm+uXngK19A==",
+ "requires": {
+ "@truffle/abi-utils": "^0.2.16",
+ "@truffle/compile-common": "^0.7.33",
+ "big.js": "^6.0.3",
+ "bn.js": "^5.1.3",
+ "cbor": "^5.2.0",
+ "debug": "^4.3.1",
+ "lodash": "^4.17.21",
+ "semver": "7.3.7",
+ "utf8": "^3.0.0",
+ "web3-utils": "1.7.4"
+ },
+ "dependencies": {
+ "big.js": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/big.js/-/big.js-6.2.1.tgz",
+ "integrity": "sha512-bCtHMwL9LeDIozFn+oNhhFoq+yQ3BNdnsLSASUxLciOb1vgvpHsIO1dsENiGMgbb4SkP5TrzWzRiLddn8ahVOQ=="
+ },
+ "web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
+ "requires": {
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "@truffle/compile-common": {
+ "version": "0.7.33",
+ "resolved": "https://registry.npmjs.org/@truffle/compile-common/-/compile-common-0.7.33.tgz",
+ "integrity": "sha512-LvZhDheDGqb+TScSRSYAFZQBRFEn+2ic/gtJIJXB2Rm1U6cS5GLdvWrEdPPIAwP+xt0xZ4ySI4mw2wBL8MUSRg==",
+ "requires": {
+ "@truffle/error": "^0.1.0",
+ "colors": "1.4.0"
+ }
+ },
+ "@truffle/db-loader": {
+ "version": "0.1.28",
+ "resolved": "https://registry.npmjs.org/@truffle/db-loader/-/db-loader-0.1.28.tgz",
+ "integrity": "sha512-d12zo7iPFCL7tpC0FD8eEianbyBkptN3rj1ySrcneKnDiQCfZlB13rIMyzMWUeYsSmOhL5BaR9CbztVAhLnnOA==",
+ "requires": {
+ "@truffle/db": "^1.0.18"
+ }
+ },
+ "@truffle/debugger": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@truffle/debugger/-/debugger-11.0.4.tgz",
+ "integrity": "sha512-5xmmApISc8Bm84kLS9BlIB5cA4pQuVze+l5f7UptsvT2bdEdaxIdPBUrTcUcVYkqZzpZVGcFMdIF0Je+Ju3eCw==",
+ "requires": {
+ "@truffle/abi-utils": "^0.2.16",
+ "@truffle/codec": "^0.14.1",
+ "@truffle/source-map-utils": "^1.3.91",
+ "bn.js": "^5.1.3",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.1",
+ "json-stable-stringify": "^1.0.1",
+ "lodash": "^4.17.21",
+ "redux": "^3.7.2",
+ "redux-saga": "1.0.0",
+ "reselect-tree": "^1.3.7",
+ "semver": "7.3.7",
+ "web3": "1.7.4",
+ "web3-eth-abi": "1.7.4"
+ },
+ "dependencies": {
+ "@sindresorhus/is": {
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz",
+ "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ=="
+ },
+ "@szmarczak/http-timer": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz",
+ "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==",
+ "requires": {
+ "defer-to-connect": "^1.0.1"
+ }
+ },
+ "@types/node": {
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
+ },
+ "cacheable-request": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
+ "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "requires": {
+ "clone-response": "^1.0.2",
+ "get-stream": "^5.1.0",
+ "http-cache-semantics": "^4.0.0",
+ "keyv": "^3.0.0",
+ "lowercase-keys": "^2.0.0",
+ "normalize-url": "^4.1.0",
+ "responselike": "^1.0.2"
+ },
+ "dependencies": {
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+ }
+ }
+ },
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ },
+ "defer-to-connect": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
+ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
+ }
+ },
+ "eventemitter3": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz",
+ "integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "got": {
+ "version": "9.6.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
+ "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
+ "requires": {
+ "@sindresorhus/is": "^0.14.0",
+ "@szmarczak/http-timer": "^1.1.2",
+ "cacheable-request": "^6.0.0",
+ "decompress-response": "^3.3.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^4.1.0",
+ "lowercase-keys": "^1.0.1",
+ "mimic-response": "^1.0.1",
+ "p-cancelable": "^1.0.0",
+ "to-readable-stream": "^1.0.0",
+ "url-parse-lax": "^3.0.0"
+ }
+ },
+ "json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ=="
+ },
+ "keyv": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
+ "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "requires": {
+ "json-buffer": "3.0.0"
+ }
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ },
+ "normalize-url": {
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
+ "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
+ },
+ "p-cancelable": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
+ "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
+ },
+ "prepend-http": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
+ "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA=="
+ },
+ "responselike": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
+ "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==",
+ "requires": {
+ "lowercase-keys": "^1.0.0"
+ }
+ },
+ "url-parse-lax": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
+ "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==",
+ "requires": {
+ "prepend-http": "^2.0.0"
+ }
+ },
+ "uuid": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
+ "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
+ },
+ "web3": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.4.tgz",
+ "integrity": "sha512-iFGK5jO32vnXM/ASaJBaI0+gVR6uHozvYdxkdhaeOCD6HIQ4iIXadbO2atVpE9oc/H8l2MovJ4LtPhG7lIBN8A==",
+ "requires": {
+ "web3-bzz": "1.7.4",
+ "web3-core": "1.7.4",
+ "web3-eth": "1.7.4",
+ "web3-eth-personal": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-shh": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-bzz": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.4.tgz",
+ "integrity": "sha512-w9zRhyEqTK/yi0LGRHjZMcPCfP24LBjYXI/9YxFw9VqsIZ9/G0CRCnUt12lUx0A56LRAMpF7iQ8eA73aBcO29Q==",
+ "requires": {
+ "@types/node": "^12.12.6",
+ "got": "9.6.0",
+ "swarm-js": "^0.1.40"
+ }
+ },
+ "web3-core": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.4.tgz",
+ "integrity": "sha512-L0DCPlIh9bgIED37tYbe7bsWrddoXYc897ANGvTJ6MFkSNGiMwDkTLWSgYd9Mf8qu8b4iuPqXZHMwIo4atoh7Q==",
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "@types/node": "^12.12.6",
+ "bignumber.js": "^9.0.0",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-requestmanager": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-core-helpers": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.4.tgz",
+ "integrity": "sha512-F8PH11qIkE/LpK4/h1fF/lGYgt4B6doeMi8rukeV/s4ivseZHHslv1L6aaijLX/g/j4PsFmR42byynBI/MIzFg==",
+ "requires": {
+ "web3-eth-iban": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-core-method": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.4.tgz",
+ "integrity": "sha512-56K7pq+8lZRkxJyzf5MHQPI9/VL3IJLoy4L/+q8HRdZJ3CkB1DkXYaXGU2PeylG1GosGiSzgIfu1ljqS7CP9xQ==",
+ "requires": {
+ "@ethersproject/transactions": "^5.6.2",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-core-promievent": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.4.tgz",
+ "integrity": "sha512-o4uxwXKDldN7ER7VUvDfWsqTx9nQSP1aDssi1XYXeYC2xJbVo0n+z6ryKtmcoWoRdRj7uSpVzal3nEmlr480mA==",
+ "requires": {
+ "eventemitter3": "4.0.4"
+ }
+ },
+ "web3-core-requestmanager": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.4.tgz",
+ "integrity": "sha512-IuXdAm65BQtPL4aI6LZJJOrKAs0SM5IK2Cqo2/lMNvVMT9Kssq6qOk68Uf7EBDH0rPuINi+ReLP+uH+0g3AnPA==",
+ "requires": {
+ "util": "^0.12.0",
+ "web3-core-helpers": "1.7.4",
+ "web3-providers-http": "1.7.4",
+ "web3-providers-ipc": "1.7.4",
+ "web3-providers-ws": "1.7.4"
+ }
+ },
+ "web3-core-subscriptions": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.4.tgz",
+ "integrity": "sha512-VJvKWaXRyxk2nFWumOR94ut9xvjzMrRtS38c4qj8WBIRSsugrZr5lqUwgndtj0qx4F+50JhnU++QEqUEAtKm3g==",
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "web3-core-helpers": "1.7.4"
+ }
+ },
+ "web3-eth": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.4.tgz",
+ "integrity": "sha512-JG0tTMv0Ijj039emXNHi07jLb0OiWSA9O24MRSk5vToTQyDNXihdF2oyq85LfHuF690lXZaAXrjhtLNlYqb7Ug==",
+ "requires": {
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-eth-accounts": "1.7.4",
+ "web3-eth-contract": "1.7.4",
+ "web3-eth-ens": "1.7.4",
+ "web3-eth-iban": "1.7.4",
+ "web3-eth-personal": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-abi": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.4.tgz",
+ "integrity": "sha512-eMZr8zgTbqyL9MCTCAvb67RbVyN5ZX7DvA0jbLOqRWCiw+KlJKTGnymKO6jPE8n5yjk4w01e165Qb11hTDwHgg==",
+ "requires": {
+ "@ethersproject/abi": "^5.6.3",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-accounts": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.4.tgz",
+ "integrity": "sha512-Y9vYLRKP7VU7Cgq6wG1jFaG2k3/eIuiTKAG8RAuQnb6Cd9k5BRqTm5uPIiSo0AP/u11jDomZ8j7+WEgkU9+Btw==",
+ "requires": {
+ "@ethereumjs/common": "^2.5.0",
+ "@ethereumjs/tx": "^3.3.2",
+ "crypto-browserify": "3.12.0",
+ "eth-lib": "0.2.8",
+ "ethereumjs-util": "^7.0.10",
+ "scrypt-js": "^3.0.1",
+ "uuid": "3.3.2",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-contract": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.4.tgz",
+ "integrity": "sha512-ZgSZMDVI1pE9uMQpK0T0HDT2oewHcfTCv0osEqf5qyn5KrcQDg1GT96/+S0dfqZ4HKj4lzS5O0rFyQiLPQ8LzQ==",
+ "requires": {
+ "@types/bn.js": "^5.1.0",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-ens": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.4.tgz",
+ "integrity": "sha512-Gw5CVU1+bFXP5RVXTCqJOmHn71X2ghNk9VcEH+9PchLr0PrKbHTA3hySpsPco1WJAyK4t8SNQVlNr3+bJ6/WZA==",
+ "requires": {
+ "content-hash": "^2.5.2",
+ "eth-ens-namehash": "2.0.8",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-promievent": "1.7.4",
+ "web3-eth-abi": "1.7.4",
+ "web3-eth-contract": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-iban": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.4.tgz",
+ "integrity": "sha512-XyrsgWlZQMv5gRcjXMsNvAoCRvV5wN7YCfFV5+tHUCqN8g9T/o4XUS20vDWD0k4HNiAcWGFqT1nrls02MGZ08w==",
+ "requires": {
+ "bn.js": "^5.2.1",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-eth-personal": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.4.tgz",
+ "integrity": "sha512-O10C1Hln5wvLQsDhlhmV58RhXo+GPZ5+W76frSsyIrkJWLtYQTCr5WxHtRC9sMD1idXLqODKKgI2DL+7xeZ0/g==",
+ "requires": {
+ "@types/node": "^12.12.6",
+ "web3-core": "1.7.4",
+ "web3-core-helpers": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-net": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-net": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.4.tgz",
+ "integrity": "sha512-d2Gj+DIARHvwIdmxFQ4PwAAXZVxYCR2lET0cxz4KXbE5Og3DNjJi+MoPkX+WqoUXqimu/EOd4Cd+7gefqVAFDg==",
+ "requires": {
+ "web3-core": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-utils": "1.7.4"
+ }
+ },
+ "web3-providers-http": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.4.tgz",
+ "integrity": "sha512-AU+/S+49rcogUER99TlhW+UBMk0N2DxvN54CJ2pK7alc2TQ7+cprNPLHJu4KREe8ndV0fT6JtWUfOMyTvl+FRA==",
+ "requires": {
+ "web3-core-helpers": "1.7.4",
+ "xhr2-cookies": "1.1.0"
+ }
+ },
+ "web3-providers-ipc": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.4.tgz",
+ "integrity": "sha512-jhArOZ235dZy8fS8090t60nTxbd1ap92ibQw5xIrAQ9m7LcZKNfmLAQUVsD+3dTFvadRMi6z1vCO7zRi84gWHw==",
+ "requires": {
+ "oboe": "2.1.5",
+ "web3-core-helpers": "1.7.4"
+ }
+ },
+ "web3-providers-ws": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.4.tgz",
+ "integrity": "sha512-g72X77nrcHMFU8hRzQJzfgi/072n8dHwRCoTw+WQrGp+XCQ71fsk2qIu3Tp+nlp5BPn8bRudQbPblVm2uT4myQ==",
+ "requires": {
+ "eventemitter3": "4.0.4",
+ "web3-core-helpers": "1.7.4",
+ "websocket": "^1.0.32"
+ }
+ },
+ "web3-shh": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.4.tgz",
+ "integrity": "sha512-mlSZxSYcMkuMCxqhTYnZkUdahZ11h+bBv/8TlkXp/IHpEe4/Gg+KAbmfudakq3EzG/04z70XQmPgWcUPrsEJ+A==",
+ "requires": {
+ "web3-core": "1.7.4",
+ "web3-core-method": "1.7.4",
+ "web3-core-subscriptions": "1.7.4",
+ "web3-net": "1.7.4"
+ }
+ },
+ "web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
+ "requires": {
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "@truffle/error": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/@truffle/error/-/error-0.1.0.tgz",
+ "integrity": "sha512-RbUfp5VreNhsa2Q4YbBjz18rOQI909pG32bghl1hulO7IpvcqTS+C3Ge5cNbiWQ1WGzy1wIeKLW0tmQtHFB7qg=="
+ },
+ "@truffle/hdwallet-provider": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/@truffle/hdwallet-provider/-/hdwallet-provider-1.7.0.tgz",
+ "integrity": "sha512-nT7BPJJ2jPCLJc5uZdVtRnRMny5he5d3kO9Hi80ZSqe5xlnK905grBptM/+CwOfbeqHKQirI1btwm6r3wIBM8A==",
+ "requires": {
+ "@ethereumjs/common": "^2.4.0",
+ "@ethereumjs/tx": "^3.3.0",
+ "@trufflesuite/web3-provider-engine": "15.0.14",
+ "eth-sig-util": "^3.0.1",
+ "ethereum-cryptography": "^0.1.3",
+ "ethereum-protocol": "^1.0.1",
+ "ethereumjs-util": "^6.1.0",
+ "ethereumjs-wallet": "^1.0.1"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "@truffle/source-map-utils": {
+ "version": "1.3.91",
+ "resolved": "https://registry.npmjs.org/@truffle/source-map-utils/-/source-map-utils-1.3.91.tgz",
+ "integrity": "sha512-TvY7fbix3txDtp58abaGWGHZuKiwajkgFXlOqYBHRJ9fsFdI30fCOMetiDHxcRMKajP2zF0df5cMnAxH5rQsOg==",
+ "requires": {
+ "@truffle/code-utils": "^2.0.0",
+ "@truffle/codec": "^0.14.1",
+ "debug": "^4.3.1",
+ "json-pointer": "^0.6.1",
+ "node-interval-tree": "^1.3.3",
+ "web3-utils": "1.7.4"
+ },
+ "dependencies": {
+ "web3-utils": {
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.4.tgz",
+ "integrity": "sha512-acBdm6Evd0TEZRnChM/MCvGsMwYKmSh7OaUfNf5OKG0CIeGWD/6gqLOWIwmwSnre/2WrA1nKGId5uW2e5EfluA==",
+ "requires": {
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
+ }
+ }
+ }
+ },
+ "@trufflesuite/eth-json-rpc-filters": {
+ "version": "4.1.2-1",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-filters/-/eth-json-rpc-filters-4.1.2-1.tgz",
+ "integrity": "sha512-/MChvC5dw2ck9NU1cZmdovCz2VKbOeIyR4tcxDvA5sT+NaL0rA2/R5U0yI7zsbo1zD+pgqav77rQHTzpUdDNJQ==",
+ "requires": {
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-0",
+ "await-semaphore": "^0.1.3",
+ "eth-query": "^2.1.2",
+ "json-rpc-engine": "^5.1.3",
+ "lodash.flatmap": "^4.5.0",
+ "safe-event-emitter": "^1.0.1"
+ }
+ },
+ "@trufflesuite/eth-json-rpc-infura": {
+ "version": "4.0.3-0",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-infura/-/eth-json-rpc-infura-4.0.3-0.tgz",
+ "integrity": "sha512-xaUanOmo0YLqRsL0SfXpFienhdw5bpQ1WEXxMTRi57az4lwpZBv4tFUDvcerdwJrxX9wQqNmgUgd1BrR01dumw==",
+ "requires": {
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1",
+ "cross-fetch": "^2.1.1",
+ "eth-json-rpc-errors": "^1.0.1",
+ "json-rpc-engine": "^5.1.3"
+ },
+ "dependencies": {
+ "cross-fetch": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz",
+ "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==",
+ "requires": {
+ "node-fetch": "^2.6.7",
+ "whatwg-fetch": "^2.0.4"
+ }
+ },
+ "eth-json-rpc-errors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
+ "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
+ "requires": {
+ "fast-safe-stringify": "^2.0.6"
+ }
+ }
+ }
+ },
+ "@trufflesuite/eth-json-rpc-middleware": {
+ "version": "4.4.2-1",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-json-rpc-middleware/-/eth-json-rpc-middleware-4.4.2-1.tgz",
+ "integrity": "sha512-iEy9H8ja7/8aYES5HfrepGBKU9n/Y4OabBJEklVd/zIBlhCCBAWBqkIZgXt11nBXO/rYAeKwYuE3puH3ByYnLA==",
+ "requires": {
+ "@trufflesuite/eth-sig-util": "^1.4.2",
+ "btoa": "^1.2.1",
+ "clone": "^2.1.1",
+ "eth-json-rpc-errors": "^1.0.1",
+ "eth-query": "^2.1.2",
+ "ethereumjs-block": "^1.6.0",
+ "ethereumjs-tx": "^1.3.7",
+ "ethereumjs-util": "^5.1.2",
+ "ethereumjs-vm": "^2.6.0",
+ "fetch-ponyfill": "^4.0.0",
+ "json-rpc-engine": "^5.1.3",
+ "json-stable-stringify": "^1.0.1",
+ "pify": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+ },
+ "eth-json-rpc-errors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-1.1.1.tgz",
+ "integrity": "sha512-WT5shJ5KfNqHi9jOZD+ID8I1kuYWNrigtZat7GOQkvwo99f8SzAVaEcWhJUv656WiZOAg3P1RiJQANtUmDmbIg==",
+ "requires": {
+ "fast-safe-stringify": "^2.0.6"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "@trufflesuite/eth-sig-util": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/eth-sig-util/-/eth-sig-util-1.4.2.tgz",
+ "integrity": "sha512-+GyfN6b0LNW77hbQlH3ufZ/1eCON7mMrGym6tdYf7xiNw9Vv3jBO72bmmos1EId2NgBvPMhmYYm6DSLQFTmzrA==",
+ "requires": {
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^5.1.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "@trufflesuite/web3-provider-engine": {
+ "version": "15.0.14",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/web3-provider-engine/-/web3-provider-engine-15.0.14.tgz",
+ "integrity": "sha512-6/LoWvNMxYf0oaYzJldK2a9AdnkAdIeJhHW4nuUBAeO29eK9xezEaEYQ0ph1QRTaICxGxvn+1Azp4u8bQ8NEZw==",
+ "requires": {
+ "@ethereumjs/tx": "^3.3.0",
+ "@trufflesuite/eth-json-rpc-filters": "^4.1.2-1",
+ "@trufflesuite/eth-json-rpc-infura": "^4.0.3-0",
+ "@trufflesuite/eth-json-rpc-middleware": "^4.4.2-1",
+ "@trufflesuite/eth-sig-util": "^1.4.2",
+ "async": "^2.5.0",
+ "backoff": "^2.5.0",
+ "clone": "^2.0.0",
+ "cross-fetch": "^2.1.0",
+ "eth-block-tracker": "^4.4.2",
+ "eth-json-rpc-errors": "^2.0.2",
+ "ethereumjs-block": "^1.2.2",
+ "ethereumjs-util": "^5.1.5",
+ "ethereumjs-vm": "^2.3.4",
+ "json-stable-stringify": "^1.0.1",
+ "promise-to-callback": "^1.0.0",
+ "readable-stream": "^2.2.9",
+ "request": "^2.85.0",
+ "semaphore": "^1.0.3",
+ "ws": "^5.1.1",
+ "xhr": "^2.2.0",
+ "xtend": "^4.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "clone": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
+ },
+ "cross-fetch": {
+ "version": "2.2.6",
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-2.2.6.tgz",
+ "integrity": "sha512-9JZz+vXCmfKUZ68zAptS7k4Nu8e2qcibe7WVZYps7sAgk5R8GYTc+T1WR0v1rlP9HxgARmOX1UTIJZFytajpNA==",
+ "requires": {
+ "node-fetch": "^2.6.7",
+ "whatwg-fetch": "^2.0.4"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "ws": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz",
+ "integrity": "sha512-jZArVERrMsKUatIdnLzqvcfydI85dvd/Fp1u/VOpfdDWQ4c9qWXe+VIeAbQ5FrDwciAkr+lzofXLz3Kuf26AOA==",
+ "requires": {
+ "async-limiter": "~1.0.0"
+ }
+ }
}
},
"@types/bn.js": {
- "version": "4.11.6",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
- "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
"requires": {
"@types/node": "*"
}
},
+ "@types/cacheable-request": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.2.tgz",
+ "integrity": "sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==",
+ "requires": {
+ "@types/http-cache-semantics": "*",
+ "@types/keyv": "*",
+ "@types/node": "*",
+ "@types/responselike": "*"
+ }
+ },
"@types/concat-stream": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz",
@@ -23893,6 +30266,11 @@
"@types/node": "*"
}
},
+ "@types/http-cache-semantics": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
+ "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
+ },
"@types/http-link-header": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/@types/http-link-header/-/http-link-header-1.0.3.tgz",
@@ -23901,6 +30279,11 @@
"@types/node": "*"
}
},
+ "@types/json-buffer": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/json-buffer/-/json-buffer-3.0.0.tgz",
+ "integrity": "sha512-3YP80IxxFJB4b5tYC2SUPwkg0XQLiu0nWvhRgEatgjf+29IcWO9X1k8xRv5DGssJ/lCrjYTjQPcobJr2yWIVuQ=="
+ },
"@types/json-stable-stringify": {
"version": "1.0.34",
"resolved": "https://registry.npmjs.org/@types/json-stable-stringify/-/json-stable-stringify-1.0.34.tgz",
@@ -23913,6 +30296,14 @@
"dev": true,
"peer": true
},
+ "@types/keyv": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
+ "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/long": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
@@ -23947,6 +30338,27 @@
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
"integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
},
+ "@types/node-fetch": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz",
+ "integrity": "sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==",
+ "requires": {
+ "@types/node": "*",
+ "form-data": "^3.0.0"
+ },
+ "dependencies": {
+ "form-data": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
+ "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
+ "requires": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
+ }
+ }
+ }
+ },
"@types/pbkdf2": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz",
@@ -23970,6 +30382,14 @@
"safe-buffer": "*"
}
},
+ "@types/responselike": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
+ "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/retry": {
"version": "0.12.1",
"resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz",
@@ -24011,6 +30431,14 @@
"resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz",
"integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg=="
},
+ "@types/websocket": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz",
+ "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
"@types/xml": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/@types/xml/-/xml-1.0.8.tgz",
@@ -24035,8 +30463,7 @@
"@ungap/promise-all-settled": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
},
"@vascosantos/moving-average": {
"version": "1.1.0",
@@ -24264,13 +30691,26 @@
}
},
"abortable-iterator": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.0.tgz",
- "integrity": "sha512-7KqcPPnMhfot4GrEjK51zesS4Ye/lUCHBgYt3oRxIlU24HO3mVxBwEo9niNyfHqoWKqWLuZTc3zErNomdHA+ag==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/abortable-iterator/-/abortable-iterator-3.0.2.tgz",
+ "integrity": "sha512-qVP8HFfTpUQI2F+f1tpTriKDIZ4XrmwCrBCrQeRKO7DKWF3kgoT6NXiNDv2krrGcHxPwmI63eGQiec81sEaWIw==",
"requires": {
"get-iterator": "^1.0.2"
}
},
+ "abortcontroller-polyfill": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz",
+ "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q=="
+ },
+ "abstract-leveldown": {
+ "version": "2.6.3",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz",
+ "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ },
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
@@ -24294,8 +30734,7 @@
"aes-js": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
- "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ==",
- "dev": true
+ "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
},
"aggregate-error": {
"version": "3.1.0",
@@ -24331,15 +30770,6 @@
"dev": true,
"requires": {}
},
- "ansi-align": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
- "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
- "dev": true,
- "requires": {
- "string-width": "^4.1.0"
- }
- },
"ansi-colors": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
@@ -24393,12 +30823,16 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
"integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
+ "app-module-path": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
+ "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ=="
+ },
"app-root-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz",
@@ -24577,6 +31011,13 @@
"inherits": "^2.0.1",
"minimalistic-assert": "^1.0.0",
"safer-buffer": "^2.1.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"assert": {
@@ -24617,8 +31058,7 @@
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true
+ "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
},
"assertion-error-formatter": {
"version": "3.0.0",
@@ -24631,6 +31071,79 @@
"repeat-string": "^1.6.1"
}
},
+ "assertion-tools": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-1.0.8.tgz",
+ "integrity": "sha512-tv5lYwLkrJAIbaRNBwlD65Qztwad5NafO1VH+DxjnGRt53xk0qkSHX1CQu82dGg7fjkGcRZjc+mnlPH2gjmcIg==",
+ "requires": {
+ "jsonld": "^6.0.0",
+ "keccak256": "^1.0.6",
+ "merkletreejs": "^0.2.32",
+ "multiformats": "^9.7.1",
+ "web3": "^1.7.4"
+ },
+ "dependencies": {
+ "@digitalbazaar/http-client": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/@digitalbazaar/http-client/-/http-client-3.2.0.tgz",
+ "integrity": "sha512-NhYXcWE/JDE7AnJikNX7q0S6zNuUPA2NuIoRdUpmvHlarjmRqyr6hIO3Awu2FxlUzbdiI1uzuWrZyB9mD1tTvw==",
+ "requires": {
+ "ky": "^0.30.0",
+ "ky-universal": "^0.10.1",
+ "undici": "^5.2.0"
+ }
+ },
+ "data-uri-to-buffer": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-4.0.0.tgz",
+ "integrity": "sha512-Vr3mLBA8qWmcuschSLAOogKgQ/Jwxulv3RNE4FXnYWRGujzrRWQI4m12fQqRkwX06C0KanhLr4hK+GydchZsaA=="
+ },
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ },
+ "jsonld": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/jsonld/-/jsonld-6.0.0.tgz",
+ "integrity": "sha512-1SkN2RXhMCTCSkX+bzHvr9ycM2HTmjWyV41hn2xG7k6BqlCgRjw0zHmuqfphjBRPqi1gKMIqgBCe/0RZMcWrAA==",
+ "requires": {
+ "@digitalbazaar/http-client": "^3.2.0",
+ "canonicalize": "^1.0.1",
+ "lru-cache": "^6.0.0",
+ "rdf-canonize": "^3.0.0"
+ }
+ },
+ "ky": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/ky/-/ky-0.30.0.tgz",
+ "integrity": "sha512-X/u76z4JtDVq10u1JA5UQfatPxgPaVDMYTrgHyiTpGN2z4TMEJkIHsoSBBSg9SWZEIXTKsi9kHgiQ9o3Y/4yog=="
+ },
+ "ky-universal": {
+ "version": "0.10.1",
+ "resolved": "https://registry.npmjs.org/ky-universal/-/ky-universal-0.10.1.tgz",
+ "integrity": "sha512-r8909k+ELKZAxhVA5c440x22hqw5XcMRwLRbgpPQk4JHy3/ddJnvzcnSo5Ww3HdKdNeS3Y8dBgcIYyVahMa46g==",
+ "requires": {
+ "abort-controller": "^3.0.0",
+ "node-fetch": "^3.2.2"
+ }
+ },
+ "node-fetch": {
+ "version": "3.2.10",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.10.tgz",
+ "integrity": "sha512-MhuzNwdURnZ1Cp4XTazr69K0BTizsBroX7Zx3UgDSVcZYKF/6p0CBe4EUb/hLqmzVhl0UpYfgRljQ4yxE+iCxA==",
+ "requires": {
+ "data-uri-to-buffer": "^4.0.0",
+ "fetch-blob": "^3.1.4",
+ "formdata-polyfill": "^4.0.10"
+ }
+ }
+ }
+ },
"assign-symbols": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
@@ -24651,9 +31164,9 @@
"integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="
},
"async": {
- "version": "3.2.3",
- "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz",
- "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g=="
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"async-each": {
"version": "1.0.3",
@@ -24663,11 +31176,37 @@
"optional": true,
"peer": true
},
+ "async-eventemitter": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz",
+ "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==",
+ "requires": {
+ "async": "^2.4.0"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ }
+ }
+ },
"async-limiter": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ=="
},
+ "async-mutex": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.3.2.tgz",
+ "integrity": "sha512-HuTK7E7MT7jZEh1P9GtRW9+aTWiDWWi9InbZ5hjxrnRa39KS4BW04+xLBhYNS2aXhHUIKZSw3gj4Pn1pj+qGAA==",
+ "requires": {
+ "tslib": "^2.3.1"
+ }
+ },
"asynciterator": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/asynciterator/-/asynciterator-3.4.0.tgz",
@@ -24708,6 +31247,11 @@
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
"integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
},
+ "await-semaphore": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/await-semaphore/-/await-semaphore-0.1.3.tgz",
+ "integrity": "sha512-d1W2aNSYcz/sxYO4pMGX9vq65qOTu0P800epMud+6cYYX0QcT7zyqcxec3VWzpgvdXo57UWmVbZpLMjX2m1I7Q=="
+ },
"awilix": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/awilix/-/awilix-5.0.1.tgz",
@@ -24749,6 +31293,48 @@
"dev": true,
"peer": true
},
+ "babel-plugin-polyfill-corejs2": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
+ "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
+ "requires": {
+ "@babel/compat-data": "^7.17.7",
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "semver": "^6.1.1"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
+ }
+ }
+ },
+ "babel-plugin-polyfill-corejs3": {
+ "version": "0.5.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
+ "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2",
+ "core-js-compat": "^3.21.0"
+ }
+ },
+ "babel-plugin-polyfill-regenerator": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
+ "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
+ "requires": {
+ "@babel/helper-define-polyfill-provider": "^0.3.2"
+ }
+ },
+ "backoff": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.5.0.tgz",
+ "integrity": "sha512-wC5ihrnUXmR2douXmXLCe5O3zg3GKIyvRi/hi58a/XyRxVI+3/yM0PYueQOZXPXQ9pxBislYkw+sF9b7C/RuMA==",
+ "requires": {
+ "precond": "0.2"
+ }
+ },
"balanced-match": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -24881,8 +31467,7 @@
"binary-extensions": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
},
"bindings": {
"version": "1.5.0",
@@ -24912,15 +31497,10 @@
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
"integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
},
- "bn": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/bn/-/bn-1.0.5.tgz",
- "integrity": "sha512-7TvGbqbZb6lDzsBtNz1VkdXXV0BVmZKPPViPmo2IpvwaryF7P+QKYKACyVkwo2mZPr2CpFiz7EtgPEcc3o/JFQ=="
- },
"bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"body-parser": {
"version": "1.19.0",
@@ -24967,65 +31547,6 @@
}
}
},
- "boxen": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
- "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
- "dev": true,
- "requires": {
- "ansi-align": "^3.0.0",
- "camelcase": "^6.2.0",
- "chalk": "^4.1.0",
- "cli-boxes": "^2.2.1",
- "string-width": "^4.2.2",
- "type-fest": "^0.20.2",
- "widest-line": "^3.1.0",
- "wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- }
- }
- },
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -25039,7 +31560,6 @@
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
"requires": {
"fill-range": "^7.0.1"
}
@@ -25057,8 +31577,7 @@
"browser-stdout": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"browserify-aes": {
"version": "1.2.0",
@@ -25101,13 +31620,6 @@
"requires": {
"bn.js": "^5.0.0",
"randombytes": "^2.0.1"
- },
- "dependencies": {
- "bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- }
}
},
"browserify-sign": {
@@ -25126,11 +31638,6 @@
"safe-buffer": "^5.2.0"
},
"dependencies": {
- "bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- },
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
@@ -25149,16 +31656,14 @@
}
},
"browserslist": {
- "version": "4.17.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.17.0.tgz",
- "integrity": "sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g==",
- "dev": true,
+ "version": "4.21.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz",
+ "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==",
"requires": {
- "caniuse-lite": "^1.0.30001254",
- "colorette": "^1.3.0",
- "electron-to-chromium": "^1.3.830",
- "escalade": "^3.1.1",
- "node-releases": "^1.1.75"
+ "caniuse-lite": "^1.0.30001370",
+ "electron-to-chromium": "^1.4.202",
+ "node-releases": "^2.0.6",
+ "update-browserslist-db": "^1.0.5"
}
},
"bs58": {
@@ -25179,6 +31684,11 @@
"safe-buffer": "^5.1.2"
}
},
+ "btoa": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz",
+ "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g=="
+ },
"buffer": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
@@ -25188,6 +31698,11 @@
"ieee754": "^1.2.1"
}
},
+ "buffer-equal-constant-time": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz",
+ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA=="
+ },
"buffer-from": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
@@ -25199,10 +31714,15 @@
"resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
"integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
},
+ "buffer-reverse": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz",
+ "integrity": "sha512-M87YIUBsZ6N924W57vDwT/aOu8hw7ZgdByz6ijksLjmHJELBASmYTTlNHRgjE+pTsT9oJXGaDSgqqwfdHotDUg=="
+ },
"buffer-to-arraybuffer": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz",
- "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo="
+ "integrity": "sha512-3dthu5CYiVB1DEJp61FtApNnNndTckcqe4pFcLdvHtrpG+kcyekCJKg4MRiDcFW7A6AODnXB9U4dwQiCW5kzJQ=="
},
"buffer-xor": {
"version": "1.0.3",
@@ -25215,11 +31735,11 @@
"integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s="
},
"bufferutil": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.4.tgz",
- "integrity": "sha512-VNxjXUCrF3LvbLgwfkTb5LsFvk6pGIn7OBb9x+3o+iJ6mKw0JTUp4chBFc88hi1aspeZGeZG9jAIbpFYPQSLZw==",
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.6.tgz",
+ "integrity": "sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==",
"requires": {
- "node-gyp-build": "^4.2.0"
+ "node-gyp-build": "^4.3.0"
}
},
"builtin-status-codes": {
@@ -25230,11 +31750,11 @@
"peer": true
},
"busboy": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.3.1.tgz",
- "integrity": "sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw==",
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
"requires": {
- "dicer": "0.3.0"
+ "streamsearch": "^1.1.0"
}
},
"bytes": {
@@ -25318,18 +31838,23 @@
"unset-value": "^1.0.0"
}
},
- "cacheable-request": {
+ "cacheable-lookup": {
"version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz",
- "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-6.1.0.tgz",
+ "integrity": "sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww=="
+ },
+ "cacheable-request": {
+ "version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz",
+ "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==",
"requires": {
"clone-response": "^1.0.2",
"get-stream": "^5.1.0",
"http-cache-semantics": "^4.0.0",
- "keyv": "^3.0.0",
+ "keyv": "^4.0.0",
"lowercase-keys": "^2.0.0",
- "normalize-url": "^4.1.0",
- "responselike": "^1.0.2"
+ "normalize-url": "^6.0.1",
+ "responselike": "^2.0.0"
},
"dependencies": {
"get-stream": {
@@ -25388,10 +31913,9 @@
"integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"caniuse-lite": {
- "version": "1.0.30001257",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001257.tgz",
- "integrity": "sha512-JN49KplOgHSXpIsVSF+LUyhD8PUp6xPpAXeRrrcBh4KBeP7W864jHn6RvzJgDlrReyeVjMFJL3PLpPvKIxlIHA==",
- "dev": true
+ "version": "1.0.30001376",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001376.tgz",
+ "integrity": "sha512-I27WhtOQ3X3v3it9gNs/oTpoE5KpwmqKR5oKPA8M0G7uMXh9Ty81Q904HpKUrM30ei7zfcL5jE7AXefgbOfMig=="
},
"canonicalize": {
"version": "1.0.8",
@@ -25414,6 +31938,15 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
+ "cbor": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/cbor/-/cbor-5.2.0.tgz",
+ "integrity": "sha512-5IMhi9e1QU76ppa5/ajP1BmMWZ2FHkhAhjeVKQ/EFCgYSEaeVaoGtL7cxJskf9oCCk+XjzaIdc3IuU/dbA/o2A==",
+ "requires": {
+ "bignumber.js": "^9.0.1",
+ "nofilter": "^1.0.4"
+ }
+ },
"chai": {
"version": "4.3.6",
"resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
@@ -25491,17 +32024,90 @@
}
}
},
+ "change-case": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.0.2.tgz",
+ "integrity": "sha512-Mww+SLF6MZ0U6kdg11algyKd5BARbyM4TbFBepwowYSR5ClfQGCGtxNXgykpN0uF/bstWeaGDT4JWaDh8zWAHA==",
+ "requires": {
+ "camel-case": "^3.0.0",
+ "constant-case": "^2.0.0",
+ "dot-case": "^2.1.0",
+ "header-case": "^1.0.0",
+ "is-lower-case": "^1.1.0",
+ "is-upper-case": "^1.1.0",
+ "lower-case": "^1.1.1",
+ "lower-case-first": "^1.0.0",
+ "no-case": "^2.3.2",
+ "param-case": "^2.1.0",
+ "pascal-case": "^2.0.0",
+ "path-case": "^2.1.0",
+ "sentence-case": "^2.1.0",
+ "snake-case": "^2.1.0",
+ "swap-case": "^1.1.0",
+ "title-case": "^2.1.0",
+ "upper-case": "^1.1.1",
+ "upper-case-first": "^1.1.0"
+ },
+ "dependencies": {
+ "camel-case": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
+ "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==",
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.1"
+ }
+ },
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "pascal-case": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz",
+ "integrity": "sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==",
+ "requires": {
+ "camel-case": "^3.0.0",
+ "upper-case-first": "^1.1.0"
+ }
+ },
+ "upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
+ "requires": {
+ "upper-case": "^1.1.1"
+ }
+ }
+ }
+ },
"check-error": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
"integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
"dev": true
},
+ "checkpoint-store": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz",
+ "integrity": "sha512-J/NdY2WvIx654cc6LWSq/IYFFCUf75fFTgwzFnmbqyORH4MwgiQCgswLLKBGzmsyTI5V7i5bp/So6sMbDWhedg==",
+ "requires": {
+ "functional-red-black-tree": "^1.0.1"
+ }
+ },
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -25525,12 +32131,6 @@
"dev": true,
"peer": true
},
- "ci-info": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz",
- "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==",
- "dev": true
- },
"cids": {
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/cids/-/cids-0.7.5.tgz",
@@ -25606,12 +32206,6 @@
"resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="
},
- "cli-boxes": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
- "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
- "dev": true
- },
"cli-color": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.1.tgz",
@@ -25725,9 +32319,9 @@
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
},
"clone-response": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz",
- "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz",
+ "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==",
"requires": {
"mimic-response": "^1.0.0"
}
@@ -25774,17 +32368,10 @@
"simple-swizzle": "^0.2.2"
}
},
- "colorette": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
- "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
- "dev": true
- },
"colors": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "dev": true
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
},
"colorspace": {
"version": "1.1.4",
@@ -25854,6 +32441,15 @@
}
}
},
+ "compress-brotli": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/compress-brotli/-/compress-brotli-1.3.8.tgz",
+ "integrity": "sha512-lVcQsjhxhIXsuupfy9fmZUFtAIdBmXA7EGY6GBdgZ++qkM9zG4YFT8iU7FoBxzryNDMOpD1HIFHUSX4D87oqhQ==",
+ "requires": {
+ "@types/json-buffer": "~3.0.0",
+ "json-buffer": "~3.0.1"
+ }
+ },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -25906,20 +32502,6 @@
"proto-list": "~1.2.1"
}
},
- "configstore": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz",
- "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==",
- "dev": true,
- "requires": {
- "dot-prop": "^5.2.0",
- "graceful-fs": "^4.1.2",
- "make-dir": "^3.0.0",
- "unique-string": "^2.0.0",
- "write-file-atomic": "^3.0.0",
- "xdg-basedir": "^4.0.0"
- }
- },
"confusing-browser-globals": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz",
@@ -25933,6 +32515,15 @@
"dev": true,
"peer": true
},
+ "constant-case": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz",
+ "integrity": "sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==",
+ "requires": {
+ "snake-case": "^2.1.0",
+ "upper-case": "^1.1.1"
+ }
+ },
"constants-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz",
@@ -25967,7 +32558,6 @@
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
"integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
- "dev": true,
"requires": {
"safe-buffer": "~5.1.1"
}
@@ -26028,6 +32618,22 @@
"dev": true,
"peer": true
},
+ "core-js-compat": {
+ "version": "3.24.1",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz",
+ "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==",
+ "requires": {
+ "browserslist": "^4.21.3",
+ "semver": "7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
+ }
+ }
+ },
"core-js-pure": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.17.3.tgz",
@@ -26050,13 +32656,9 @@
}
},
"crc-32": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz",
- "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==",
- "requires": {
- "exit-on-epipe": "~1.0.1",
- "printj": "~1.1.0"
- }
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
},
"create-ecdh": {
"version": "4.0.4",
@@ -26065,6 +32667,13 @@
"requires": {
"bn.js": "^4.1.0",
"elliptic": "^6.5.3"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"create-hash": {
@@ -26143,12 +32752,6 @@
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz",
"integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw=="
},
- "crypto-random-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz",
- "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==",
- "dev": true
- },
"cyclist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
@@ -26195,6 +32798,13 @@
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
"requires": {
"ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
}
},
"decamelize": {
@@ -26208,11 +32818,18 @@
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
"decompress-response": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
- "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=",
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
"requires": {
- "mimic-response": "^1.0.0"
+ "mimic-response": "^3.1.0"
+ },
+ "dependencies": {
+ "mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="
+ }
}
},
"deeks": {
@@ -26273,16 +32890,25 @@
}
},
"defer-to-connect": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz",
- "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ=="
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg=="
+ },
+ "deferred-leveldown": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz",
+ "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==",
+ "requires": {
+ "abstract-leveldown": "~2.6.0"
+ }
},
"define-properties": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
- "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"requires": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
}
},
"define-property": {
@@ -26324,14 +32950,6 @@
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
- "dicer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz",
- "integrity": "sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA==",
- "requires": {
- "streamsearch": "0.1.2"
- }
- },
"diff": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
@@ -26346,6 +32964,327 @@
"bn.js": "^4.1.0",
"miller-rabin": "^4.0.0",
"randombytes": "^2.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
+ }
+ },
+ "dkg-evm-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-1.0.1.tgz",
+ "integrity": "sha512-trmiV9LyzHIS4u7F+1c85RZZ16aumYdrScuK0yeHL9GxkymvIxY1eBkwK5F5K0jELkx7nRVicS1ioYl5k9DAMw==",
+ "requires": {
+ "@openzeppelin/contracts": "^4.6.0",
+ "@truffle/hdwallet-provider": "^1.2.1",
+ "bn.js": "^5.1.3",
+ "dotenv": "^8.2.0",
+ "fs": "0.0.1-security",
+ "ganache": "^7.3.1",
+ "ganache-cli": "^6.12.2",
+ "ganache-time-traveler": "^1.0.15",
+ "hamming-distance": "^1.0.0",
+ "hex-to-binary": "^1.0.1",
+ "keccak256": "^1.0.6",
+ "merkle-tools": "^1.4.1",
+ "merkletreejs": "^0.2.32",
+ "minimist": "latest",
+ "mocha": "^8.2.1",
+ "multiformats": "^9.6.5",
+ "truffle": "^5.1.56",
+ "truffle-assertions": "^0.9.2",
+ "uint8arrays": "^3.0.0",
+ "web3": "^1.3.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
+ },
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
+ },
+ "chokidar": {
+ "version": "3.5.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
+ "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
+ "requires": {
+ "anymatch": "~3.1.1",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.1",
+ "glob-parent": "~5.1.0",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.5.0"
+ }
+ },
+ "cliui": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+ "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+ },
+ "debug": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
+ "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
+ "diff": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="
+ },
+ "dotenv": {
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
+ },
+ "find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
+ },
+ "js-yaml": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.0.0.tgz",
+ "integrity": "sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q==",
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "log-symbols": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
+ "requires": {
+ "chalk": "^4.0.0"
+ }
+ },
+ "mocha": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.4.0.tgz",
+ "integrity": "sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ==",
+ "requires": {
+ "@ungap/promise-all-settled": "1.1.2",
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.1",
+ "debug": "4.3.1",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "7.1.6",
+ "growl": "1.10.5",
+ "he": "1.2.0",
+ "js-yaml": "4.0.0",
+ "log-symbols": "4.0.0",
+ "minimatch": "3.0.4",
+ "ms": "2.1.3",
+ "nanoid": "3.1.20",
+ "serialize-javascript": "5.0.1",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "which": "2.0.2",
+ "wide-align": "1.1.3",
+ "workerpool": "6.1.0",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ }
+ },
+ "nanoid": {
+ "version": "3.1.20",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.20.tgz",
+ "integrity": "sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw=="
+ },
+ "p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
+ },
+ "readdirp": {
+ "version": "3.5.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
+ "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "serialize-javascript": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
+ "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
+ "requires": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "wide-align": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+ "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
+ "requires": {
+ "string-width": "^1.0.2 || 2"
+ },
+ "dependencies": {
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
+ }
+ },
+ "workerpool": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.0.tgz",
+ "integrity": "sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg=="
+ },
+ "wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ }
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+ "requires": {
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.0",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^20.2.2"
+ }
+ },
+ "yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
+ }
}
},
"dkg.js": {
@@ -26452,13 +33391,27 @@
"domhandler": "^4.2.0"
}
},
- "dot-prop": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz",
- "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==",
- "dev": true,
+ "dot-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz",
+ "integrity": "sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==",
"requires": {
- "is-obj": "^2.0.0"
+ "no-case": "^2.2.0"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
}
},
"dotenv": {
@@ -26504,9 +33457,9 @@
}
},
"duplexer3": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI="
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz",
+ "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA=="
},
"duplexify": {
"version": "4.1.2",
@@ -26550,6 +33503,29 @@
"safer-buffer": "^2.1.0"
}
},
+ "ecdsa-sig-formatter": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
+ "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "ed2curve": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.3.0.tgz",
+ "integrity": "sha512-8w2fmmq3hv9rCrcI7g9hms2pMunQr1JINfcjwR9tAyZqhtyaMN991lF/ZfHfr5tzZQ8c7y7aBgZbjfbd0fjFwQ==",
+ "requires": {
+ "tweetnacl": "1.x.x"
+ },
+ "dependencies": {
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ }
+ }
+ },
"editorconfig": {
"version": "0.15.3",
"resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz",
@@ -26596,10 +33572,9 @@
}
},
"electron-to-chromium": {
- "version": "1.3.840",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.840.tgz",
- "integrity": "sha512-yRoUmTLDJnkIJx23xLY7GbSvnmDCq++NSuxHDQ0jiyDJ9YZBUGJcrdUqm+ZwZFzMbCciVzfem2N2AWiHJcWlbw==",
- "dev": true
+ "version": "1.4.219",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.219.tgz",
+ "integrity": "sha512-zoQJsXOUw0ZA0YxbjkmzBumAJRtr6je5JySuL/bAoFs0DuLiLJ+5FzRF7/ZayihxR2QcewlRZVm5QZdUhwjOgA=="
},
"elliptic": {
"version": "6.5.4",
@@ -26613,6 +33588,13 @@
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"emoji-regex": {
@@ -26726,7 +33708,6 @@
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
- "dev": true,
"requires": {
"prr": "~1.0.1"
}
@@ -26742,28 +33723,33 @@
}
},
"es-abstract": {
- "version": "1.18.6",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.6.tgz",
- "integrity": "sha512-kAeIT4cku5eNLNuUKhlmtuk1/TRZvQoYccn6TO0cSVdf1kzB0T7+dYuVK9MWM7l+/53W2Q8M7N2c6MQvhXFcUQ==",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
"requires": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
- "has-symbols": "^1.0.2",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
+ "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "object-inspect": "^1.11.0",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
}
},
"es-to-primitive": {
@@ -26802,6 +33788,11 @@
"es6-symbol": "^3.1.1"
}
},
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
"es6-promisify": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-7.0.0.tgz",
@@ -26832,12 +33823,6 @@
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
},
- "escape-goat": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz",
- "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==",
- "dev": true
- },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -27219,10 +34204,23 @@
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
+ "eth-block-tracker": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/eth-block-tracker/-/eth-block-tracker-4.4.3.tgz",
+ "integrity": "sha512-A8tG4Z4iNg4mw5tP1Vung9N9IjgMNqpiMoJ/FouSFwNCGHv2X0mmOYwtQOJzki6XN7r7Tyo01S29p7b224I4jw==",
+ "requires": {
+ "@babel/plugin-transform-runtime": "^7.5.5",
+ "@babel/runtime": "^7.5.5",
+ "eth-query": "^2.1.0",
+ "json-rpc-random-id": "^1.0.1",
+ "pify": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
+ }
+ },
"eth-ens-namehash": {
"version": "2.0.8",
"resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz",
- "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=",
+ "integrity": "sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw==",
"requires": {
"idna-uts46-hx": "^2.3.1",
"js-sha3": "^0.5.7"
@@ -27231,18 +34229,90 @@
"js-sha3": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz",
- "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc="
+ "integrity": "sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g=="
}
}
},
+ "eth-json-rpc-errors": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/eth-json-rpc-errors/-/eth-json-rpc-errors-2.0.2.tgz",
+ "integrity": "sha512-uBCRM2w2ewusRHGxN8JhcuOb2RN3ueAOYH/0BhqdFmQkZx5lj5+fLKTz0mIVOzd4FG5/kUksCzCD7eTEim6gaA==",
+ "requires": {
+ "fast-safe-stringify": "^2.0.6"
+ }
+ },
"eth-lib": {
- "version": "0.2.8",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
- "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "version": "0.1.29",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
+ "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
"requires": {
"bn.js": "^4.11.6",
"elliptic": "^6.4.0",
+ "nano-json-stream-parser": "^0.1.2",
+ "servify": "^0.1.12",
+ "ws": "^3.0.0",
"xhr-request-promise": "^0.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
+ }
+ },
+ "eth-query": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/eth-query/-/eth-query-2.1.2.tgz",
+ "integrity": "sha512-srES0ZcvwkR/wd5OQBRA1bIJMww1skfGS0s8wlwK3/oNP4+wnds60krvu5R1QbpRQjMmpG5OMIWro5s7gvDPsA==",
+ "requires": {
+ "json-rpc-random-id": "^1.0.0",
+ "xtend": "^4.0.1"
+ }
+ },
+ "eth-rpc-errors": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/eth-rpc-errors/-/eth-rpc-errors-3.0.0.tgz",
+ "integrity": "sha512-iPPNHPrLwUlR9xCSYm7HHQjWBasor3+KZfRvwEWxMz3ca0yqnlBeJrnyphkGIXZ4J7AMAaOLmwy4AWhnxOiLxg==",
+ "requires": {
+ "fast-safe-stringify": "^2.0.6"
+ }
+ },
+ "eth-sig-util": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eth-sig-util/-/eth-sig-util-3.0.1.tgz",
+ "integrity": "sha512-0Us50HiGGvZgjtWTyAI/+qTzYPMLy5Q451D0Xy68bxq1QMWdoOddDwGvsqcFT27uohKgalM9z/yxplyt+mY2iQ==",
+ "requires": {
+ "ethereumjs-abi": "^0.6.8",
+ "ethereumjs-util": "^5.1.1",
+ "tweetnacl": "^1.0.3",
+ "tweetnacl-util": "^0.15.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
+ }
}
},
"ethereum-bloom-filters": {
@@ -27253,6 +34323,11 @@
"js-sha3": "^0.8.0"
}
},
+ "ethereum-common": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz",
+ "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA=="
+ },
"ethereum-cryptography": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz",
@@ -27275,31 +34350,262 @@
"setimmediate": "^1.0.5"
}
},
+ "ethereum-protocol": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/ethereum-protocol/-/ethereum-protocol-1.0.1.tgz",
+ "integrity": "sha512-3KLX1mHuEsBW0dKG+c6EOJS1NBNqdCICvZW9sInmZTt5aY0oxmHVggYRE0lJu1tcnMD1K+AKHdLi6U43Awm1Vg=="
+ },
+ "ethereumjs-abi": {
+ "version": "0.6.8",
+ "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz",
+ "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==",
+ "requires": {
+ "bn.js": "^4.11.8",
+ "ethereumjs-util": "^6.0.0"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ }
+ }
+ },
+ "ethereumjs-account": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.5.tgz",
+ "integrity": "sha512-bgDojnXGjhMwo6eXQC0bY6UK2liSFUSMwwylOmQvZbSl/D7NXQ3+vrGO46ZeOgjGfxXmgIeVNDIiHw7fNZM4VA==",
+ "requires": {
+ "ethereumjs-util": "^5.0.0",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-block": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.1.tgz",
+ "integrity": "sha512-B+sSdtqm78fmKkBq78/QLKJbu/4Ts4P2KFISdgcuZUPDm9x+N7qgBPIIFUGbaakQh8bzuquiRVbdmvPKqbILRg==",
+ "requires": {
+ "async": "^2.0.1",
+ "ethereum-common": "0.2.0",
+ "ethereumjs-tx": "^1.2.2",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-common": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-common/-/ethereumjs-common-1.5.2.tgz",
+ "integrity": "sha512-hTfZjwGX52GS2jcVO6E2sx4YuFnf0Fhp5ylo4pEPhEffNln7vS59Hr5sLnp3/QCazFLluuBZ+FZ6J5HTp0EqCA=="
+ },
+ "ethereumjs-tx": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz",
+ "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==",
+ "requires": {
+ "ethereum-common": "^0.0.18",
+ "ethereumjs-util": "^5.0.0"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereum-common": {
+ "version": "0.0.18",
+ "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz",
+ "integrity": "sha512-EoltVQTRNg2Uy4o84qpa2aXymXDJhxm7eos/ACOg0DG4baAbMjhbdAEsx9GeE8sC3XCxnYvrrzZDH8D8MtA2iQ=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
"ethereumjs-util": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.2.tgz",
- "integrity": "sha512-xCV3PTAhW8Q2k88XZn9VcO4OrjpeXAlDm5LQTaOLp81SjNSSY6+MwuGXrx6vafOMheWSmZGxIXUbue5e9UvUBw==",
+ "version": "7.1.5",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz",
+ "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==",
"requires": {
"@types/bn.js": "^5.1.0",
"bn.js": "^5.1.2",
"create-hash": "^1.1.2",
"ethereum-cryptography": "^0.1.3",
- "ethjs-util": "0.1.6",
"rlp": "^2.2.4"
+ }
+ },
+ "ethereumjs-vm": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.6.0.tgz",
+ "integrity": "sha512-r/XIUik/ynGbxS3y+mvGnbOKnuLo40V5Mj1J25+HEO63aWYREIqvWeRO/hnROlMBE5WoniQmPmhiaN0ctiHaXw==",
+ "requires": {
+ "async": "^2.1.2",
+ "async-eventemitter": "^0.2.2",
+ "ethereumjs-account": "^2.0.3",
+ "ethereumjs-block": "~2.2.0",
+ "ethereumjs-common": "^1.1.0",
+ "ethereumjs-util": "^6.0.0",
+ "fake-merkle-patricia-tree": "^1.0.1",
+ "functional-red-black-tree": "^1.0.1",
+ "merkle-patricia-tree": "^2.3.2",
+ "rustbn.js": "~0.2.0",
+ "safe-buffer": "^5.1.1"
},
"dependencies": {
"@types/bn.js": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
- "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "version": "4.11.6",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz",
+ "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==",
"requires": {
"@types/node": "*"
}
},
+ "async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "requires": {
+ "lodash": "^4.17.14"
+ }
+ },
"bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-block": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-2.2.2.tgz",
+ "integrity": "sha512-2p49ifhek3h2zeg/+da6XpdFR3GlqY3BIEiqxGF8j9aSRIgkb7M1Ky+yULBKJOu8PAZxfhsYA+HxUk2aCQp3vg==",
+ "requires": {
+ "async": "^2.0.1",
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-tx": "^2.1.1",
+ "ethereumjs-util": "^5.0.0",
+ "merkle-patricia-tree": "^2.1.2"
+ },
+ "dependencies": {
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ }
+ }
+ },
+ "ethereumjs-tx": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-2.1.2.tgz",
+ "integrity": "sha512-zZEK1onCeiORb0wyCXUvg94Ve5It/K6GD1K+26KfFKodiBiS6d9lfCXlUKGBBdQ+bv7Day+JK0tj1K+BeNFRAw==",
+ "requires": {
+ "ethereumjs-common": "^1.5.0",
+ "ethereumjs-util": "^6.0.0"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz",
+ "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==",
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
}
}
},
@@ -27307,7 +34613,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-1.0.2.tgz",
"integrity": "sha512-CCWV4RESJgRdHIvFciVQFnCHfqyhXWchTPlkfp28Qc53ufs+doi5I/cV2+xeK9+qEo25XCWfP9MiL+WEPAZfdA==",
- "dev": true,
"requires": {
"aes-js": "^3.1.2",
"bs58check": "^2.1.2",
@@ -27393,11 +34698,6 @@
"strip-final-newline": "^2.0.0"
}
},
- "exit-on-epipe": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz",
- "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw=="
- },
"expand-brackets": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
@@ -27491,11 +34791,11 @@
}
},
"express-fileupload": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.2.1.tgz",
- "integrity": "sha512-fWPNAkBj+Azt9Itmcz/Reqdg3LeBfaXptDEev2JM8bCC0yDptglCnlizhf0YZauyU5X/g6v7v4Xxqhg8tmEfEA==",
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/express-fileupload/-/express-fileupload-1.4.0.tgz",
+ "integrity": "sha512-RjzLCHxkv3umDeZKeFeMg8w7qe0V09w3B7oGZprr/oO2H/ISCgNzuqzn7gV3HRWb37GjRk429CCpSLS2KNTqMQ==",
"requires": {
- "busboy": "^0.3.1"
+ "busboy": "^1.6.0"
}
},
"express-ipfilter": {
@@ -27626,6 +34926,27 @@
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
+ "fake-merkle-patricia-tree": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz",
+ "integrity": "sha512-Tgq37lkc9pUIgIKw5uitNUKcgcYL3R6JvXtKQbOf/ZSavXbidsksgp/pAY6p//uhw0I4yoMsvTSovvVIsk/qxA==",
+ "requires": {
+ "checkpoint-store": "^1.1.0"
+ }
+ },
+ "faker": {
+ "version": "5.5.3",
+ "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz",
+ "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g=="
+ },
+ "fast-check": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.1.1.tgz",
+ "integrity": "sha512-3vtXinVyuUKCKFKYcwXhGE6NtGWkqF8Yh3rvMZNzmwz8EPrgoc/v4pDdLHyLnCyCI5MZpZZkDEwFyXyEONOxpA==",
+ "requires": {
+ "pure-rand": "^5.0.1"
+ }
+ },
"fast-deep-equal": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
@@ -27679,6 +35000,30 @@
"resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-2.1.2.tgz",
"integrity": "sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow=="
},
+ "fetch-ponyfill": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/fetch-ponyfill/-/fetch-ponyfill-4.1.0.tgz",
+ "integrity": "sha512-knK9sGskIg2T7OnYLdZ2hZXn0CtDrAIBxYQLpmEf0BqfdWnwmM1weccUl5+4EdA44tzNSFAuxITPbXtPehUB3g==",
+ "requires": {
+ "node-fetch": "~1.7.1"
+ },
+ "dependencies": {
+ "is-stream": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
+ },
+ "node-fetch": {
+ "version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "requires": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ }
+ }
+ },
"fetch-sparql-endpoint": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/fetch-sparql-endpoint/-/fetch-sparql-endpoint-2.4.0.tgz",
@@ -27740,7 +35085,6 @@
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
"requires": {
"to-regex-range": "^5.0.1"
}
@@ -27858,8 +35202,7 @@
"flat": {
"version": "5.0.2",
"resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
},
"flat-cache": {
"version": "3.0.4",
@@ -27926,6 +35269,14 @@
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
"integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
},
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
+ },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -27934,9 +35285,9 @@
"peer": true
},
"foreach": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
- "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz",
+ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg=="
},
"foreground-child": {
"version": "2.0.0",
@@ -27963,6 +35314,30 @@
"mime-types": "^2.1.12"
}
},
+ "form-data-encoder": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-1.7.1.tgz",
+ "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg=="
+ },
+ "formdata-polyfill": {
+ "version": "4.0.10",
+ "resolved": "https://registry.npmjs.org/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz",
+ "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==",
+ "requires": {
+ "fetch-blob": "^3.1.2"
+ },
+ "dependencies": {
+ "fetch-blob": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz",
+ "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==",
+ "requires": {
+ "node-domexception": "^1.0.0",
+ "web-streams-polyfill": "^3.0.3"
+ }
+ }
+ }
+ },
"forwarded": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -28025,6 +35400,11 @@
"integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==",
"dev": true
},
+ "fs": {
+ "version": "0.0.1-security",
+ "resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
+ "integrity": "sha512-3XY9e1pP0CVEUCdj5BmfIZxRBTSDycnbqhIOGec9QYtmVH2fbLpj86CFWkrNOkt/Fvty4KZG5lTglL9j/gJ87w=="
+ },
"fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@@ -28106,7 +35486,6 @@
"version": "2.3.2",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
"optional": true
},
"fstream": {
@@ -28143,18 +35522,36 @@
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
+ },
"functional-red-black-tree": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
"integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
},
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
"ganache": {
- "version": "7.0.5",
- "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.0.5.tgz",
- "integrity": "sha512-CMRj6dwl1WtE3/4uLHhn/TcZA6QB0SM9YFxSp0ToeGJQ+9HYyfPlzuDE7CzniN+PklEHaCcpgoRYAq9Py9m6WA==",
- "dev": true,
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/ganache/-/ganache-7.4.0.tgz",
+ "integrity": "sha512-e1x0ZJsJ5zUP+hWtpSNv+FaavRdcrQhQwe+QZ4kVon5mDm6RgFpe3PzNDJXg82AeqqslohJeK9UinZbZzjewjQ==",
"requires": {
- "@trufflesuite/bigint-buffer": "1.1.9",
+ "@trufflesuite/bigint-buffer": "1.1.10",
+ "@types/bn.js": "^5.1.0",
+ "@types/lru-cache": "5.1.1",
+ "@types/seedrandom": "3.0.1",
"bufferutil": "4.0.5",
"emittery": "0.10.0",
"keccak": "3.0.1",
@@ -28164,87 +35561,561 @@
},
"dependencies": {
"@trufflesuite/bigint-buffer": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz",
- "integrity": "sha512-bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==",
- "dev": true,
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.10.tgz",
+ "integrity": "sha512-pYIQC5EcMmID74t26GCC67946mgTJFiLXOT/BYozgrd4UEY2JHEGLhWi9cMiQCt5BSqFEvKkCHNnoj82SRjiEw==",
+ "bundled": true,
"requires": {
- "node-gyp-build": "4.3.0"
+ "node-gyp-build": "4.4.0"
+ },
+ "dependencies": {
+ "node-gyp-build": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.4.0.tgz",
+ "integrity": "sha512-amJnQCcgtRVw9SvoebO3BKGESClrfXGCUTX9hSn1OuGQTQBOZmVd0Z0OlecpuRksKvbsUqALE8jls/ErClAPuQ==",
+ "bundled": true
+ }
}
},
+ "@types/bn.js": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.0.tgz",
+ "integrity": "sha512-QSSVYj7pYFN49kW77o2s9xTCwZ8F2xLbjLLSEVh8D2F4JUhZtPAGOFLTD+ffqksBx/u4cE/KImFjyhqCjn/LIA==",
+ "bundled": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==",
+ "bundled": true
+ },
+ "@types/node": {
+ "version": "17.0.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.0.tgz",
+ "integrity": "sha512-eMhwJXc931Ihh4tkU+Y7GiLzT/y/DBNpNtr4yU9O2w3SYBsr9NaOPhQlLKRmoWtI54uNwuo0IOUFQjVOTZYRvw==",
+ "bundled": true
+ },
+ "@types/seedrandom": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@types/seedrandom/-/seedrandom-3.0.1.tgz",
+ "integrity": "sha512-giB9gzDeiCeloIXDgzFBCgjj1k4WxcDrZtGl6h1IqmUPlxF+Nx8Ve+96QCyDZ/HseB/uvDsKbpib9hU5cU53pw==",
+ "bundled": true
+ },
"base64-js": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "dev": true
- },
- "bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
- "dev": true
+ "bundled": true
},
"brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=",
- "dev": true
+ "bundled": true
+ },
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "bundled": true,
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "bufferutil": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz",
+ "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==",
+ "optional": true,
+ "requires": {
+ "node-gyp-build": "^4.3.0"
+ }
+ },
+ "catering": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz",
+ "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==",
+ "bundled": true,
+ "requires": {
+ "queue-tick": "^1.0.0"
+ }
+ },
+ "elliptic": {
+ "version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "bundled": true,
+ "requires": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
+ "bundled": true
+ }
+ }
+ },
+ "emittery": {
+ "version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz",
+ "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==",
+ "bundled": true
+ },
+ "hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
+ "bundled": true,
+ "requires": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "bundled": true
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "bundled": true
+ },
+ "is-buffer": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
+ "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
+ "bundled": true
+ },
+ "keccak": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz",
+ "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==",
+ "bundled": true,
+ "requires": {
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "leveldown": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz",
+ "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==",
+ "bundled": true,
+ "requires": {
+ "abstract-leveldown": "^7.2.0",
+ "napi-macros": "~2.0.0",
+ "node-gyp-build": "^4.3.0"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
+ "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==",
+ "bundled": true,
+ "requires": {
+ "buffer": "^6.0.3",
+ "catering": "^2.0.0",
+ "is-buffer": "^2.0.5",
+ "level-concat-iterator": "^3.0.0",
+ "level-supports": "^2.0.1",
+ "queue-microtask": "^1.2.3"
+ }
+ },
+ "level-concat-iterator": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz",
+ "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==",
+ "bundled": true,
+ "requires": {
+ "catering": "^2.1.0"
+ }
+ },
+ "level-supports": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz",
+ "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==",
+ "bundled": true
+ }
+ }
+ },
+ "minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "bundled": true
+ },
+ "minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
+ "bundled": true
+ },
+ "napi-macros": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz",
+ "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
+ "bundled": true
+ },
+ "node-addon-api": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
+ "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
+ "bundled": true
+ },
+ "node-gyp-build": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
+ "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==",
+ "bundled": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "bundled": true
+ },
+ "queue-tick": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz",
+ "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==",
+ "bundled": true
+ },
+ "secp256k1": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz",
+ "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==",
+ "bundled": true,
+ "requires": {
+ "elliptic": "^6.5.2",
+ "node-addon-api": "^2.0.0",
+ "node-gyp-build": "^4.2.0"
+ }
+ },
+ "utf-8-validate": {
+ "version": "5.0.7",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz",
+ "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==",
+ "optional": true,
+ "requires": {
+ "node-gyp-build": "^4.3.0"
+ }
+ }
+ }
+ },
+ "ganache-cli": {
+ "version": "6.12.2",
+ "resolved": "https://registry.npmjs.org/ganache-cli/-/ganache-cli-6.12.2.tgz",
+ "integrity": "sha512-bnmwnJDBDsOWBUP8E/BExWf85TsdDEFelQSzihSJm9VChVO1SHp94YXLP5BlA4j/OTxp0wR4R1Tje9OHOuAJVw==",
+ "requires": {
+ "ethereumjs-util": "6.2.1",
+ "source-map-support": "0.5.12",
+ "yargs": "13.2.4"
+ },
+ "dependencies": {
+ "@types/bn.js": {
+ "version": "4.11.6",
+ "bundled": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/node": {
+ "version": "14.11.2",
+ "bundled": true
+ },
+ "@types/pbkdf2": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "@types/secp256k1": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "ansi-regex": {
+ "version": "4.1.0",
+ "bundled": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "bundled": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "base-x": {
+ "version": "3.0.8",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "blakejs": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "bn.js": {
+ "version": "4.11.9",
+ "bundled": true
+ },
+ "brorand": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "browserify-aes": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "buffer-xor": "^1.0.3",
+ "cipher-base": "^1.0.0",
+ "create-hash": "^1.1.0",
+ "evp_bytestokey": "^1.0.3",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "bs58": {
+ "version": "4.0.1",
+ "bundled": true,
+ "requires": {
+ "base-x": "^3.0.2"
+ }
+ },
+ "bs58check": {
+ "version": "2.1.2",
+ "bundled": true,
+ "requires": {
+ "bs58": "^4.0.0",
+ "create-hash": "^1.1.0",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "buffer-from": {
+ "version": "1.1.1",
+ "bundled": true
+ },
+ "buffer-xor": {
+ "version": "1.0.3",
+ "bundled": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "bundled": true
+ },
+ "cipher-base": {
+ "version": "1.0.4",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "cliui": {
+ "version": "5.0.0",
+ "bundled": true,
+ "requires": {
+ "string-width": "^3.1.0",
+ "strip-ansi": "^5.2.0",
+ "wrap-ansi": "^5.1.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "bundled": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "bundled": true
+ },
+ "create-hash": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "cipher-base": "^1.0.1",
+ "inherits": "^2.0.1",
+ "md5.js": "^1.3.4",
+ "ripemd160": "^2.0.1",
+ "sha.js": "^2.4.0"
+ }
+ },
+ "create-hmac": {
+ "version": "1.1.7",
+ "bundled": true,
+ "requires": {
+ "cipher-base": "^1.0.3",
+ "create-hash": "^1.1.0",
+ "inherits": "^2.0.1",
+ "ripemd160": "^2.0.0",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "cross-spawn": {
+ "version": "6.0.5",
+ "bundled": true,
+ "requires": {
+ "nice-try": "^1.0.4",
+ "path-key": "^2.0.1",
+ "semver": "^5.5.0",
+ "shebang-command": "^1.2.0",
+ "which": "^1.2.9"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "bundled": true
+ },
+ "elliptic": {
+ "version": "6.5.3",
+ "bundled": true,
+ "requires": {
+ "bn.js": "^4.4.0",
+ "brorand": "^1.0.1",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.0",
+ "inherits": "^2.0.1",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "7.0.3",
+ "bundled": true
+ },
+ "end-of-stream": {
+ "version": "1.4.4",
+ "bundled": true,
+ "requires": {
+ "once": "^1.4.0"
+ }
+ },
+ "ethereum-cryptography": {
+ "version": "0.1.3",
+ "bundled": true,
+ "requires": {
+ "@types/pbkdf2": "^3.0.0",
+ "@types/secp256k1": "^4.0.1",
+ "blakejs": "^1.1.0",
+ "browserify-aes": "^1.2.0",
+ "bs58check": "^2.1.2",
+ "create-hash": "^1.2.0",
+ "create-hmac": "^1.1.7",
+ "hash.js": "^1.1.7",
+ "keccak": "^3.0.0",
+ "pbkdf2": "^3.0.17",
+ "randombytes": "^2.1.0",
+ "safe-buffer": "^5.1.2",
+ "scrypt-js": "^3.0.0",
+ "secp256k1": "^4.0.1",
+ "setimmediate": "^1.0.5"
+ }
+ },
+ "ethereumjs-util": {
+ "version": "6.2.1",
+ "bundled": true,
+ "requires": {
+ "@types/bn.js": "^4.11.3",
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "0.1.6",
+ "rlp": "^2.2.3"
+ }
+ },
+ "ethjs-util": {
+ "version": "0.1.6",
+ "bundled": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0",
+ "strip-hex-prefix": "1.0.0"
+ }
},
- "buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "dev": true,
+ "evp_bytestokey": {
+ "version": "1.0.3",
+ "bundled": true,
"requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
+ "md5.js": "^1.3.4",
+ "safe-buffer": "^5.1.1"
}
},
- "bufferutil": {
- "version": "4.0.5",
- "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.5.tgz",
- "integrity": "sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==",
- "dev": true,
- "optional": true,
+ "execa": {
+ "version": "1.0.0",
+ "bundled": true,
"requires": {
- "node-gyp-build": "^4.3.0"
+ "cross-spawn": "^6.0.0",
+ "get-stream": "^4.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
}
},
- "catering": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/catering/-/catering-2.1.0.tgz",
- "integrity": "sha512-M5imwzQn6y+ODBfgi+cfgZv2hIUI6oYU/0f35Mdb1ujGeqeoI5tOnl9Q13DTH7LW+7er+NYq8stNOKZD/Z3U/A==",
- "dev": true,
+ "find-up": {
+ "version": "3.0.0",
+ "bundled": true,
"requires": {
- "queue-tick": "^1.0.0"
+ "locate-path": "^3.0.0"
}
},
- "elliptic": {
- "version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
- "dev": true,
+ "get-caller-file": {
+ "version": "2.0.5",
+ "bundled": true
+ },
+ "get-stream": {
+ "version": "4.1.0",
+ "bundled": true,
"requires": {
- "bn.js": "^4.11.9",
- "brorand": "^1.1.0",
- "hash.js": "^1.0.0",
- "hmac-drbg": "^1.0.1",
- "inherits": "^2.0.4",
- "minimalistic-assert": "^1.0.1",
- "minimalistic-crypto-utils": "^1.0.1"
+ "pump": "^3.0.0"
}
},
- "emittery": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz",
- "integrity": "sha512-AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==",
- "dev": true
+ "hash-base": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.6.0",
+ "safe-buffer": "^5.2.0"
+ }
},
"hash.js": {
"version": "1.1.7",
- "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
- "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
- "dev": true,
+ "bundled": true,
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -28252,150 +36123,390 @@
},
"hmac-drbg": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
- "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=",
- "dev": true,
+ "bundled": true,
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
"minimalistic-crypto-utils": "^1.0.1"
}
},
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "dev": true
- },
"inherits": {
"version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "bundled": true
},
- "is-buffer": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz",
- "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==",
- "dev": true
+ "invert-kv": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "is-hex-prefixed": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "is-stream": {
+ "version": "1.1.0",
+ "bundled": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "bundled": true
},
"keccak": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz",
- "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==",
- "dev": true,
+ "bundled": true,
"requires": {
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0"
}
},
- "leveldown": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz",
- "integrity": "sha512-8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==",
- "dev": true,
+ "lcid": {
+ "version": "2.0.0",
+ "bundled": true,
"requires": {
- "abstract-leveldown": "^7.2.0",
- "napi-macros": "~2.0.0",
- "node-gyp-build": "^4.3.0"
- },
- "dependencies": {
- "abstract-leveldown": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz",
- "integrity": "sha512-DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==",
- "dev": true,
- "requires": {
- "buffer": "^6.0.3",
- "catering": "^2.0.0",
- "is-buffer": "^2.0.5",
- "level-concat-iterator": "^3.0.0",
- "level-supports": "^2.0.1",
- "queue-microtask": "^1.2.3"
- }
- },
- "level-concat-iterator": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz",
- "integrity": "sha512-BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==",
- "dev": true,
- "requires": {
- "catering": "^2.1.0"
- }
- },
- "level-supports": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz",
- "integrity": "sha512-E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==",
- "dev": true
- }
+ "invert-kv": "^2.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "map-age-cleaner": {
+ "version": "0.1.3",
+ "bundled": true,
+ "requires": {
+ "p-defer": "^1.0.0"
+ }
+ },
+ "md5.js": {
+ "version": "1.3.5",
+ "bundled": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.1.2"
+ }
+ },
+ "mem": {
+ "version": "4.3.0",
+ "bundled": true,
+ "requires": {
+ "map-age-cleaner": "^0.1.1",
+ "mimic-fn": "^2.0.0",
+ "p-is-promise": "^2.0.0"
}
},
+ "mimic-fn": {
+ "version": "2.1.0",
+ "bundled": true
+ },
"minimalistic-assert": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
- "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
- "dev": true
+ "bundled": true
},
"minimalistic-crypto-utils": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
- "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=",
- "dev": true
+ "bundled": true
},
- "napi-macros": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz",
- "integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
- "dev": true
+ "nice-try": {
+ "version": "1.0.5",
+ "bundled": true
},
"node-addon-api": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
- "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==",
- "dev": true
+ "bundled": true
},
"node-gyp-build": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
- "integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==",
- "dev": true
+ "version": "4.2.3",
+ "bundled": true
},
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
+ "npm-run-path": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "path-key": "^2.0.0"
+ }
},
- "queue-tick": {
+ "once": {
+ "version": "1.4.0",
+ "bundled": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "os-locale": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "execa": "^1.0.0",
+ "lcid": "^2.0.0",
+ "mem": "^4.0.0"
+ }
+ },
+ "p-defer": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.0.tgz",
- "integrity": "sha512-ULWhjjE8BmiICGn3G8+1L9wFpERNxkf8ysxkAer4+TFdRefDaXOCV5m92aMB9FtBVmn/8sETXLXY6BfW7hyaWQ==",
- "dev": true
+ "bundled": true
+ },
+ "p-finally": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "p-is-promise": {
+ "version": "2.1.0",
+ "bundled": true
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "bundled": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "bundled": true
+ },
+ "path-exists": {
+ "version": "3.0.0",
+ "bundled": true
+ },
+ "path-key": {
+ "version": "2.0.1",
+ "bundled": true
+ },
+ "pbkdf2": {
+ "version": "3.1.1",
+ "bundled": true,
+ "requires": {
+ "create-hash": "^1.1.2",
+ "create-hmac": "^1.1.4",
+ "ripemd160": "^2.0.1",
+ "safe-buffer": "^5.0.1",
+ "sha.js": "^2.4.8"
+ }
+ },
+ "pump": {
+ "version": "3.0.0",
+ "bundled": true,
+ "requires": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "randombytes": {
+ "version": "2.1.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.0",
+ "bundled": true,
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "require-directory": {
+ "version": "2.1.1",
+ "bundled": true
+ },
+ "require-main-filename": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "ripemd160": {
+ "version": "2.0.2",
+ "bundled": true,
+ "requires": {
+ "hash-base": "^3.0.0",
+ "inherits": "^2.0.1"
+ }
+ },
+ "rlp": {
+ "version": "2.2.6",
+ "bundled": true,
+ "requires": {
+ "bn.js": "^4.11.1"
+ }
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "bundled": true
+ },
+ "scrypt-js": {
+ "version": "3.0.1",
+ "bundled": true
},
"secp256k1": {
"version": "4.0.2",
- "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz",
- "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==",
- "dev": true,
+ "bundled": true,
"requires": {
"elliptic": "^6.5.2",
"node-addon-api": "^2.0.0",
"node-gyp-build": "^4.2.0"
}
},
- "utf-8-validate": {
- "version": "5.0.7",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.7.tgz",
- "integrity": "sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==",
- "dev": true,
- "optional": true,
+ "semver": {
+ "version": "5.7.1",
+ "bundled": true
+ },
+ "set-blocking": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "setimmediate": {
+ "version": "1.0.5",
+ "bundled": true
+ },
+ "sha.js": {
+ "version": "2.4.11",
+ "bundled": true,
"requires": {
- "node-gyp-build": "^4.3.0"
+ "inherits": "^2.0.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "shebang-command": {
+ "version": "1.2.0",
+ "bundled": true,
+ "requires": {
+ "shebang-regex": "^1.0.0"
+ }
+ },
+ "shebang-regex": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "signal-exit": {
+ "version": "3.0.3",
+ "bundled": true
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "bundled": true
+ },
+ "source-map-support": {
+ "version": "0.5.12",
+ "bundled": true,
+ "requires": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "string_decoder": {
+ "version": "1.3.0",
+ "bundled": true,
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "string-width": {
+ "version": "3.1.0",
+ "bundled": true,
+ "requires": {
+ "emoji-regex": "^7.0.1",
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^5.1.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "5.2.0",
+ "bundled": true,
+ "requires": {
+ "ansi-regex": "^4.1.0"
+ }
+ },
+ "strip-eof": {
+ "version": "1.0.0",
+ "bundled": true
+ },
+ "strip-hex-prefix": {
+ "version": "1.0.0",
+ "bundled": true,
+ "requires": {
+ "is-hex-prefixed": "1.0.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "which": {
+ "version": "1.3.1",
+ "bundled": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "which-module": {
+ "version": "2.0.0",
+ "bundled": true
+ },
+ "wrap-ansi": {
+ "version": "5.1.0",
+ "bundled": true,
+ "requires": {
+ "ansi-styles": "^3.2.0",
+ "string-width": "^3.0.0",
+ "strip-ansi": "^5.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "bundled": true
+ },
+ "y18n": {
+ "version": "4.0.0",
+ "bundled": true
+ },
+ "yargs": {
+ "version": "13.2.4",
+ "bundled": true,
+ "requires": {
+ "cliui": "^5.0.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^2.0.1",
+ "os-locale": "^3.1.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^2.0.0",
+ "set-blocking": "^2.0.0",
+ "string-width": "^3.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^4.0.0",
+ "yargs-parser": "^13.1.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "13.1.2",
+ "bundled": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
}
}
}
},
+ "ganache-time-traveler": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/ganache-time-traveler/-/ganache-time-traveler-1.0.16.tgz",
+ "integrity": "sha512-oUaQge9tiT/zzcGqehqJcoH10claKi9QFhq7zI1Wa3KtdPobjgLVMYvqXCJuHCAZoS7sHvLB/N/rSnhmivxaKw=="
+ },
"generate-function": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz",
@@ -28407,8 +36518,7 @@
"gensync": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
- "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
- "dev": true
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
},
"get-caller-file": {
"version": "2.0.5",
@@ -28507,23 +36617,6 @@
"process": "^0.11.10"
}
},
- "global-dirs": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.0.tgz",
- "integrity": "sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==",
- "dev": true,
- "requires": {
- "ini": "2.0.0"
- },
- "dependencies": {
- "ini": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
- "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
- "dev": true
- }
- }
- },
"globals": {
"version": "13.11.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-13.11.0.tgz",
@@ -28533,35 +36626,29 @@
}
},
"got": {
- "version": "9.6.0",
- "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz",
- "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==",
- "requires": {
- "@sindresorhus/is": "^0.14.0",
- "@szmarczak/http-timer": "^1.1.2",
- "cacheable-request": "^6.0.0",
- "decompress-response": "^3.3.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^4.1.0",
- "lowercase-keys": "^1.0.1",
- "mimic-response": "^1.0.1",
- "p-cancelable": "^1.0.0",
- "to-readable-stream": "^1.0.0",
- "url-parse-lax": "^3.0.0"
+ "version": "12.1.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-12.1.0.tgz",
+ "integrity": "sha512-hBv2ty9QN2RdbJJMK3hesmSkFTjVIHyIDDbssCKnSmq62edGgImJWD10Eb1k77TiV1bxloxqcFAVK8+9pkhOig==",
+ "requires": {
+ "@sindresorhus/is": "^4.6.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "@types/cacheable-request": "^6.0.2",
+ "@types/responselike": "^1.0.0",
+ "cacheable-lookup": "^6.0.4",
+ "cacheable-request": "^7.0.2",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "1.7.1",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^2.0.0"
},
"dependencies": {
- "get-stream": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
- "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
- "requires": {
- "pump": "^3.0.0"
- }
- },
"p-cancelable": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz",
- "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw=="
}
}
},
@@ -28571,15 +36658,15 @@
"integrity": "sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg=="
},
"graphdb": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.0.tgz",
- "integrity": "sha512-9YzAzmTHhUrdJiogQvjRmRlW/SLO6GLE2IUwML4fN8EXbJLz7ABWjFwB7nPJU9fROS+faklNPmKMfP8dbr/aAw==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/graphdb/-/graphdb-2.0.2.tgz",
+ "integrity": "sha512-ORbS7yw/kTUdKXyeO7QaXx1I3fxigej3KQQdrVSpu0ZQ1W7OVQHDAd/Gu+x2clpwm6sela94Uh/+YKkQGbZqmA==",
"requires": {
- "axios": "^0.21.1",
+ "axios": "^0.21.4",
"base64url": "^3.0.1",
"eslint-config-google": "^0.13.0",
"jsonld-streaming-parser": "^2.2.0",
- "n3": "^1.7.0",
+ "n3": "^1.16.2",
"pino": "^5.17.0",
"qs": "^6.9.4",
"rdfxml-streaming-parser": "^1.4.0",
@@ -28637,8 +36724,12 @@
"growl": {
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
+ },
+ "hamming-distance": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/hamming-distance/-/hamming-distance-1.0.0.tgz",
+ "integrity": "sha512-hYz2IIKtyuZGfOqCs7skNiFEATf+v9IUNSOaQSr6Ll4JOxxWhOvXvc3mIdCW82Z3xW+zUoto7N/ssD4bDxAWoA=="
},
"har-schema": {
"version": "2.0.0",
@@ -28663,24 +36754,32 @@
}
},
"has-bigints": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz",
- "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA=="
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
},
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
+ },
"has-symbol-support-x": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz",
"integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw=="
},
"has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-to-string-tag-x": {
"version": "1.4.1",
@@ -28752,12 +36851,6 @@
}
}
},
- "has-yarn": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz",
- "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==",
- "dev": true
- },
"hash-base": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz",
@@ -28810,14 +36903,42 @@
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
+ },
+ "header-case": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz",
+ "integrity": "sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==",
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.1.3"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
+ }
},
"heap": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz",
"integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw="
},
+ "hex-to-binary": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hex-to-binary/-/hex-to-binary-1.0.1.tgz",
+ "integrity": "sha512-m1ykzQs9fKfgfzXj2oV5xAWoyGaudwa0qxY4IDUOgY8J69fKY7mXdwTfQHtS3Y5kglpwM7UmyCSQFKnL87FrdQ=="
+ },
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
@@ -28891,7 +37012,7 @@
"http-https": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/http-https/-/http-https-1.0.0.tgz",
- "integrity": "sha1-L5CN1fHbQGjAWM1ubUzjkskTOJs="
+ "integrity": "sha512-o0PWwVCSp3O0wS6FvNr6xfBCHgt0m1tvPLFOCc2iFDKTRAXhB7m8klDf7ErowFH8POa6dVdGatKU5I1YYwzUyg=="
},
"http-link-header": {
"version": "1.0.3",
@@ -28925,6 +37046,15 @@
"sshpk": "^1.7.0"
}
},
+ "http2-wrapper": {
+ "version": "2.1.11",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.1.11.tgz",
+ "integrity": "sha512-aNAk5JzLturWEUiuhAN73Jcbq96R7rTitAoXV54FYMatvihnpD2+6PUgU4ce3D/m5VDbw+F5CsyKSF176ptitQ==",
+ "requires": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ }
+ },
"https-browserify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz",
@@ -28962,7 +37092,7 @@
"punycode": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz",
- "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0="
+ "integrity": "sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA=="
}
}
},
@@ -28988,6 +37118,11 @@
"integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=",
"dev": true
},
+ "immediate": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
+ "integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q=="
+ },
"immutable": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz",
@@ -29002,12 +37137,6 @@
"resolve-from": "^4.0.0"
}
},
- "import-lazy": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
- "dev": true
- },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -29080,9 +37209,9 @@
}
},
"ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg=="
},
"ip-address": {
"version": "8.1.0",
@@ -29200,7 +37329,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
"requires": {
"binary-extensions": "^2.0.0"
}
@@ -29224,15 +37352,6 @@
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
"integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
},
- "is-ci": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz",
- "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==",
- "dev": true,
- "requires": {
- "ci-info": "^2.0.0"
- }
- },
"is-core-module": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.6.0.tgz",
@@ -29316,6 +37435,11 @@
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
},
+ "is-fn": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fn/-/is-fn-1.0.0.tgz",
+ "integrity": "sha512-XoFPJQmsAShb3jEQRfzf2rqXavq7fIqF/jOekp308JlThqrODnMpweVSGilKTCXELfLhltGP2AGgbQGVP8F1dg=="
+ },
"is-fullwidth-code-point": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
@@ -29347,16 +37471,6 @@
"resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz",
"integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ="
},
- "is-installed-globally": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz",
- "integrity": "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==",
- "dev": true,
- "requires": {
- "global-dirs": "^3.0.0",
- "is-path-inside": "^3.0.2"
- }
- },
"is-ip": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz",
@@ -29370,48 +37484,44 @@
"resolved": "https://registry.npmjs.org/is-loopback-addr/-/is-loopback-addr-1.0.1.tgz",
"integrity": "sha512-DhWU/kqY7X2F6KrrVTu7mHlbd2Pbo4D1YkAzasBMjQs6lJAoefxaA6m6CpSX0K6pjt9D0b9PNFI5zduy/vzOYw=="
},
- "is-negative-zero": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
- "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w=="
+ "is-lower-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz",
+ "integrity": "sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==",
+ "requires": {
+ "lower-case": "^1.1.0"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ }
+ }
},
- "is-npm": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-5.0.0.tgz",
- "integrity": "sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==",
- "dev": true
+ "is-negative-zero": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
},
"is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"is-number-object": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz",
- "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
- "is-obj": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz",
- "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==",
- "dev": true
- },
"is-object": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz",
"integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA=="
},
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true
- },
"is-plain-obj": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
@@ -29451,6 +37561,14 @@
"resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz",
"integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg=="
},
+ "is-shared-array-buffer": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
+ },
"is-stream": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
@@ -29473,14 +37591,14 @@
}
},
"is-typed-array": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz",
- "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==",
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
+ "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
"requires": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
- "es-abstract": "^1.18.5",
- "foreach": "^2.0.5",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
"has-tostringtag": "^1.0.0"
}
},
@@ -29492,8 +37610,23 @@
"is-unicode-supported": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
+ },
+ "is-upper-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz",
+ "integrity": "sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==",
+ "requires": {
+ "upper-case": "^1.1.0"
+ }
+ },
+ "is-weakref": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
},
"is-windows": {
"version": "1.0.2",
@@ -29507,12 +37640,6 @@
"integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=",
"dev": true
},
- "is-yarn-global": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz",
- "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==",
- "dev": true
- },
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
@@ -29866,8 +37993,7 @@
"jsesc": {
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
},
"json-2-csv": {
"version": "3.15.1",
@@ -29879,9 +38005,9 @@
}
},
"json-buffer": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz",
- "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg="
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
},
"json-parse-better-errors": {
"version": "1.0.2",
@@ -29890,6 +38016,28 @@
"dev": true,
"peer": true
},
+ "json-pointer": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz",
+ "integrity": "sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw==",
+ "requires": {
+ "foreach": "^2.0.4"
+ }
+ },
+ "json-rpc-engine": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/json-rpc-engine/-/json-rpc-engine-5.4.0.tgz",
+ "integrity": "sha512-rAffKbPoNDjuRnXkecTjnsE3xLLrb00rEkdgalINhaYVYIxDwWtvYBr9UFbhTvPB1B2qUOLoFd/cV6f4Q7mh7g==",
+ "requires": {
+ "eth-rpc-errors": "^3.0.0",
+ "safe-event-emitter": "^1.0.1"
+ }
+ },
+ "json-rpc-random-id": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz",
+ "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA=="
+ },
"json-schema": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
@@ -29931,7 +38079,7 @@
"jsonfile": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"requires": {
"graceful-fs": "^4.1.6"
}
@@ -30000,6 +38148,11 @@
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
"integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA="
},
+ "jsonschema": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz",
+ "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ=="
+ },
"JSONStream": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
@@ -30009,6 +38162,30 @@
"through": ">=2.2.7 <3"
}
},
+ "jsonwebtoken": {
+ "version": "8.5.1",
+ "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz",
+ "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==",
+ "requires": {
+ "jws": "^3.2.2",
+ "lodash.includes": "^4.3.0",
+ "lodash.isboolean": "^3.0.3",
+ "lodash.isinteger": "^4.0.4",
+ "lodash.isnumber": "^3.0.3",
+ "lodash.isplainobject": "^4.0.6",
+ "lodash.isstring": "^4.0.1",
+ "lodash.once": "^4.0.0",
+ "ms": "^2.1.1",
+ "semver": "^5.6.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
+ }
+ }
+ },
"jsprim": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
@@ -30031,6 +38208,31 @@
"object.assign": "^4.1.2"
}
},
+ "just-extend": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
+ "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
+ "dev": true
+ },
+ "jwa": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz",
+ "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==",
+ "requires": {
+ "buffer-equal-constant-time": "1.0.1",
+ "ecdsa-sig-formatter": "1.0.11",
+ "safe-buffer": "^5.0.1"
+ }
+ },
+ "jws": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz",
+ "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==",
+ "requires": {
+ "jwa": "^1.4.1",
+ "safe-buffer": "^5.0.1"
+ }
+ },
"k-bucket": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/k-bucket/-/k-bucket-5.1.0.tgz",
@@ -30049,17 +38251,28 @@
"readable-stream": "^3.6.0"
}
},
+ "keccak256": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz",
+ "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==",
+ "requires": {
+ "bn.js": "^5.2.0",
+ "buffer": "^6.0.3",
+ "keccak": "^3.0.2"
+ }
+ },
"keypair": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.4.tgz",
"integrity": "sha512-zwhgOhhniaL7oxMgUMKKw5219PWWABMO+dgMnzJOQ2/5L3XJtTJGhW2PEXlxXj9zaccdReZJZ83+4NPhVfNVDg=="
},
"keyv": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz",
- "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.3.3.tgz",
+ "integrity": "sha512-AcysI17RvakTh8ir03+a3zJr5r0ovnAH/XTXei/4HIv3bL2K/jzvgivLK9UuI/JbU1aJjM3NSAnVvVVd3n+4DQ==",
"requires": {
- "json-buffer": "3.0.0"
+ "compress-brotli": "^1.3.8",
+ "json-buffer": "3.0.1"
}
},
"kind-of": {
@@ -30146,13 +38359,117 @@
"language-subtag-registry": "~0.3.2"
}
},
- "latest-version": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
- "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==",
- "dev": true,
+ "level-codec": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz",
+ "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ=="
+ },
+ "level-errors": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz",
+ "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==",
+ "requires": {
+ "errno": "~0.1.1"
+ }
+ },
+ "level-iterator-stream": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz",
+ "integrity": "sha512-1qua0RHNtr4nrZBgYlpV0qHHeHpcRRWTxEZJ8xsemoHAXNL5tbooh4tPEEqIqsbWCAJBmUmkwYK/sW5OrFjWWw==",
+ "requires": {
+ "inherits": "^2.0.1",
+ "level-errors": "^1.0.3",
+ "readable-stream": "^1.0.33",
+ "xtend": "^4.0.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "readable-stream": {
+ "version": "1.1.14",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ }
+ }
+ },
+ "level-ws": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz",
+ "integrity": "sha512-XUTaO/+Db51Uiyp/t7fCMGVFOTdtLS/NIACxE/GHsij15mKzxksZifKVjlXDF41JMUP/oM1Oc4YNGdKnc3dVLw==",
+ "requires": {
+ "readable-stream": "~1.0.15",
+ "xtend": "~2.1.1"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "object-keys": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz",
+ "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw=="
+ },
+ "readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "xtend": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz",
+ "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==",
+ "requires": {
+ "object-keys": "~0.4.0"
+ }
+ }
+ }
+ },
+ "levelup": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz",
+ "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==",
"requires": {
- "package-json": "^6.3.0"
+ "deferred-leveldown": "~1.2.1",
+ "level-codec": "~7.0.0",
+ "level-errors": "~1.0.3",
+ "level-iterator-stream": "~1.3.0",
+ "prr": "~1.0.1",
+ "semver": "~5.4.1",
+ "xtend": "~4.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "5.4.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
+ "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ }
}
},
"leven": {
@@ -30257,9 +38574,9 @@
}
},
"libp2p-interfaces": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.1.0.tgz",
- "integrity": "sha512-5nc/HZJgeks1qfkyYQdI84hcZLF4SJKJSUx33JpO0w7v7R+obz+HOwk0GSa4/ZvQHjX+/+OWC4NYVA0yZxZXag==",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/libp2p-interfaces/-/libp2p-interfaces-1.3.1.tgz",
+ "integrity": "sha512-Bh991Nv2KT/jZ7DjPd/zqhk8cCtkHl6OWw8lyK7wBX7Aj3/ezGwjoDABJzKgt1lbvcgCeQIbzPiIbaKj4DUI4w==",
"requires": {
"abort-controller": "^3.0.0",
"abortable-iterator": "^3.0.0",
@@ -30268,12 +38585,33 @@
"it-length-prefixed": "^5.0.2",
"it-pipe": "^1.1.0",
"it-pushable": "^1.4.2",
- "libp2p-crypto": "^0.19.5",
+ "libp2p-crypto": "^0.20.0",
"multiaddr": "^10.0.0",
"multiformats": "^9.1.2",
- "peer-id": "^0.15.0",
+ "p-queue": "^6.6.2",
+ "peer-id": "^0.15.4",
"protobufjs": "^6.10.2",
"uint8arrays": "^3.0.0"
+ },
+ "dependencies": {
+ "libp2p-crypto": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
+ "requires": {
+ "err-code": "^3.0.1",
+ "iso-random-stream": "^2.0.0",
+ "keypair": "^1.0.4",
+ "multiformats": "^9.4.5",
+ "noble-ed25519": "^1.2.6",
+ "noble-secp256k1": "^1.2.10",
+ "node-forge": "^0.10.0",
+ "pem-jwk": "^2.0.0",
+ "protobufjs": "^6.11.2",
+ "uint8arrays": "^3.0.0",
+ "ursa-optional": "^0.10.1"
+ }
+ }
}
},
"libp2p-kad-dht": {
@@ -30307,12 +38645,11 @@
}
},
"libp2p-mplex": {
- "version": "0.10.4",
- "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.4.tgz",
- "integrity": "sha512-a8Oy68EXaSBBXGOGYMuwBcpnynkhqAFJ3LiyV24u9fE4wTxvuWTr0prSyKc+KC8QsLuX3A+CAdSgxqm09NbumQ==",
+ "version": "0.10.7",
+ "resolved": "https://registry.npmjs.org/libp2p-mplex/-/libp2p-mplex-0.10.7.tgz",
+ "integrity": "sha512-21VV0DZWuOsHgitWy1GZD1M/kki3a/hVoAJ5QC48p01JNSK5W8gxRiZtq7cCGJ/xNpbQxvMlMtS5eq8CFRlysg==",
"requires": {
- "abort-controller": "^3.0.0",
- "abortable-iterator": "^3.0.0",
+ "abortable-iterator": "^3.0.2",
"bl": "^5.0.0",
"debug": "^4.3.1",
"err-code": "^3.0.1",
@@ -30573,22 +38910,83 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
},
+ "lodash-es": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
+ "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
+ },
"lodash.clonedeep": {
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
"integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8="
},
+ "lodash.debounce": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
+ },
+ "lodash.flatmap": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz",
+ "integrity": "sha512-/OcpcAGWlrZyoHGeHh3cAoa6nGdX6QYtmzNP84Jqol6UEQQ2gIaU3H+0eICcjcKGl0/XF8LWOujNn9lffsnaOg=="
+ },
"lodash.flattendeep": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
"integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=",
"dev": true
},
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "dev": true
+ },
+ "lodash.includes": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz",
+ "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w=="
+ },
+ "lodash.isboolean": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
+ "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg=="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "lodash.isinteger": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz",
+ "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA=="
+ },
+ "lodash.isnumber": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz",
+ "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw=="
+ },
+ "lodash.isplainobject": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
+ "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA=="
+ },
+ "lodash.isstring": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz",
+ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw=="
+ },
"lodash.merge": {
"version": "4.6.2",
"resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="
},
+ "lodash.once": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz",
+ "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="
+ },
"lodash.truncate": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
@@ -30598,7 +38996,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
"integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
"requires": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -30643,8 +39040,6 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
"integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "dev": true,
- "peer": true,
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
@@ -30666,10 +39061,25 @@
"tslib": "^2.0.3"
}
},
+ "lower-case-first": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz",
+ "integrity": "sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==",
+ "requires": {
+ "lower-case": "^1.1.2"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ }
+ }
+ },
"lowercase-keys": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
- "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ=="
},
"lru-cache": {
"version": "6.0.0",
@@ -30687,6 +39097,11 @@
"es5-ext": "~0.10.2"
}
},
+ "ltgt": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
+ "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA=="
+ },
"mafmt": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/mafmt/-/mafmt-10.0.0.tgz",
@@ -30744,6 +39159,29 @@
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
+ "memdown": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz",
+ "integrity": "sha512-iVrGHZB8i4OQfM155xx8akvG9FIj+ht14DX5CQkCTG4EHzZ3d3sgckIf/Lm9ivZalEsFuEVnWv2B2WZvbrro2w==",
+ "requires": {
+ "abstract-leveldown": "~2.7.1",
+ "functional-red-black-tree": "^1.0.1",
+ "immediate": "^3.2.3",
+ "inherits": "~2.0.1",
+ "ltgt": "~2.2.0",
+ "safe-buffer": "~5.1.1"
+ },
+ "dependencies": {
+ "abstract-leveldown": {
+ "version": "2.7.2",
+ "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz",
+ "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==",
+ "requires": {
+ "xtend": "~4.0.0"
+ }
+ }
+ }
+ },
"memoizee": {
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
@@ -30829,6 +39267,69 @@
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="
},
+ "merkle-patricia-tree": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.3.2.tgz",
+ "integrity": "sha512-81PW5m8oz/pz3GvsAwbauj7Y00rqm81Tzad77tHBwU7pIAtN+TJnMSOJhxBKflSVYhptMMb9RskhqHqrSm1V+g==",
+ "requires": {
+ "async": "^1.4.2",
+ "ethereumjs-util": "^5.0.0",
+ "level-ws": "0.0.0",
+ "levelup": "^1.2.1",
+ "memdown": "^1.0.0",
+ "readable-stream": "^2.0.0",
+ "rlp": "^2.0.0",
+ "semaphore": ">=1.0.1"
+ },
+ "dependencies": {
+ "async": {
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="
+ },
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "ethereumjs-util": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz",
+ "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==",
+ "requires": {
+ "bn.js": "^4.11.0",
+ "create-hash": "^1.1.2",
+ "elliptic": "^6.5.2",
+ "ethereum-cryptography": "^0.1.3",
+ "ethjs-util": "^0.1.3",
+ "rlp": "^2.0.0",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "readable-stream": {
+ "version": "2.3.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "requires": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"merkle-tools": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/merkle-tools/-/merkle-tools-1.4.1.tgz",
@@ -30837,6 +39338,25 @@
"js-sha3": "^0.8.0"
}
},
+ "merkletreejs": {
+ "version": "0.2.32",
+ "resolved": "https://registry.npmjs.org/merkletreejs/-/merkletreejs-0.2.32.tgz",
+ "integrity": "sha512-TostQBiwYRIwSE5++jGmacu3ODcKAgqb0Y/pnIohXS7sWxh1gCkSptbmF1a43faehRDpcHf7J/kv0Ml2D/zblQ==",
+ "requires": {
+ "bignumber.js": "^9.0.1",
+ "buffer-reverse": "^1.0.1",
+ "crypto-js": "^3.1.9-1",
+ "treeify": "^1.1.0",
+ "web3-utils": "^1.3.4"
+ },
+ "dependencies": {
+ "crypto-js": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.3.0.tgz",
+ "integrity": "sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q=="
+ }
+ }
+ },
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
@@ -30909,6 +39429,13 @@
"requires": {
"bn.js": "^4.0.0",
"brorand": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"mime": {
@@ -30942,7 +39469,7 @@
"min-document": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz",
- "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=",
+ "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==",
"requires": {
"dom-walk": "^0.1.0"
}
@@ -31081,7 +39608,7 @@
"mkdirp-promise": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz",
- "integrity": "sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=",
+ "integrity": "sha512-Hepn5kb1lJPtVW84RFT40YG1OddBNTOVUZR2bzQUHc+Z03en8/3uX0+060JDhcEzyO08HmipsN9DcnFMxhIL9w==",
"requires": {
"mkdirp": "*"
}
@@ -31090,7 +39617,6 @@
"version": "9.2.2",
"resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
"integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
"requires": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
@@ -31122,7 +39648,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"requires": {
"color-convert": "^2.0.1"
}
@@ -31130,14 +39655,12 @@
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"cliui": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
"requires": {
"string-width": "^4.2.0",
"strip-ansi": "^6.0.0",
@@ -31148,7 +39671,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"requires": {
"color-name": "~1.1.4"
}
@@ -31156,20 +39678,17 @@
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"diff": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="
},
"find-up": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
"requires": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -31178,14 +39697,12 @@
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
"requires": {
"argparse": "^2.0.1"
}
@@ -31194,7 +39711,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
"requires": {
"p-locate": "^5.0.0"
}
@@ -31203,22 +39719,14 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
"integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
"p-limit": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
"requires": {
"yocto-queue": "^0.1.0"
}
@@ -31227,7 +39735,6 @@
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
"requires": {
"p-limit": "^3.0.2"
}
@@ -31235,14 +39742,12 @@
"path-exists": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
- "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
- "dev": true
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"supports-color": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
"requires": {
"has-flag": "^4.0.0"
}
@@ -31251,7 +39756,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -31261,14 +39765,12 @@
"y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
},
"yargs": {
"version": "16.2.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
"requires": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -31282,8 +39784,7 @@
"yargs-parser": {
"version": "20.2.4",
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
}
}
},
@@ -31292,10 +39793,15 @@
"resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.14.0.tgz",
"integrity": "sha512-qYvlv/exQ4+svI3UOvPUpLDF0OMX5euvUH0Ny4N5QyRyhNdgAgUrVH3iUINSzEPLvx0kbo/Bp28GJKIqvE7URw=="
},
+ "mock-socket": {
+ "version": "9.1.5",
+ "resolved": "https://registry.npmjs.org/mock-socket/-/mock-socket-9.1.5.tgz",
+ "integrity": "sha512-3DeNIcsQixWHHKk6NdoBhWI4t1VMj5/HzfnI1rE/pLl5qKx7+gd4DNA07ehTaZ6MoUU053si6Hd+YtiM/tQZfg=="
+ },
"moment": {
- "version": "2.29.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
- "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+ "version": "2.29.4",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
+ "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
},
"moment-timezone": {
"version": "0.5.34",
@@ -31345,9 +39851,9 @@
"integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w=="
},
"ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"multiaddr": {
"version": "10.0.1",
@@ -31398,9 +39904,9 @@
}
},
"multiformats": {
- "version": "9.4.7",
- "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.4.7.tgz",
- "integrity": "sha512-fZbcdf7LnvokPAZYkv4TLXe7PAg9sQ5qLXcwrAmZOloEb2+5FtFiAY+l3/9wsu4oTJXTV3JSggFQQ2dJLS01vA=="
+ "version": "9.7.1",
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.7.1.tgz",
+ "integrity": "sha512-TaVmGEBt0fhxiNJMGphBfB+oGvUxFs8KgGvgl8d3C+GWtrFcvXdJ2196eg+dYhmSFClmgFfSfJEklo+SZzdNuw=="
},
"multihashes": {
"version": "0.4.21",
@@ -31486,9 +39992,9 @@
}
},
"n3": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/n3/-/n3-1.12.2.tgz",
- "integrity": "sha512-vY1HBEraMPWQFLEK6sn67DeGMqTuwXnlEYpZ8gTVukKQSz2f44d+t+ZcmwEt8c99FlVAbpmMb/435Q8t0OC+7w==",
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/n3/-/n3-1.16.2.tgz",
+ "integrity": "sha512-5vYa2HuNEJ+a26FEs4FGgfFLgaPOODaZpJlc7FS0eUjDumc4uK0cvx216PjKXBkLzmAsSqGgQPwqztcLLvwDsw==",
"requires": {
"queue-microtask": "^1.1.2",
"readable-stream": "^3.6.0"
@@ -31526,7 +40032,7 @@
"nano-json-stream-parser": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz",
- "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18="
+ "integrity": "sha512-9MqxMH/BSJC7dnLsEMPyfN5Dvoo49IsPFYMcHw3Bcfc2kN0lpHRBSzlMSVx4HGyJ7s9B31CyBTVehWJoQ8Ctew=="
},
"nanoid": {
"version": "3.3.1",
@@ -31670,6 +40176,36 @@
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
+ "nise": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/nise/-/nise-5.1.1.tgz",
+ "integrity": "sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/fake-timers": ">=5",
+ "@sinonjs/text-encoding": "^0.7.1",
+ "just-extend": "^4.0.2",
+ "path-to-regexp": "^1.7.0"
+ },
+ "dependencies": {
+ "isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
+ "dev": true
+ },
+ "path-to-regexp": {
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
+ "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
+ "dev": true,
+ "requires": {
+ "isarray": "0.0.1"
+ }
+ }
+ }
+ },
"no-case": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz",
@@ -31679,11 +40215,37 @@
"tslib": "^2.0.3"
}
},
+ "noble-ed25519": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/noble-ed25519/-/noble-ed25519-1.2.6.tgz",
+ "integrity": "sha512-zfnWqg9FVMp8CnzUpAjbt1nDXpDjCvxYiCXdnW1mY8zQHw/6twUlkFm14VPdojVzc0kcd+i9zT79+26GcNbsuQ=="
+ },
+ "noble-secp256k1": {
+ "version": "1.2.14",
+ "resolved": "https://registry.npmjs.org/noble-secp256k1/-/noble-secp256k1-1.2.14.tgz",
+ "integrity": "sha512-GSCXyoZBUaaPwVWdYncMEmzlSUjF9J/YeEHpklYJCyg8wPuJP3NzDx0BkiwArzINkdX2HJHvUJhL6vVWPOQQcg=="
+ },
+ "nock": {
+ "version": "13.2.9",
+ "resolved": "https://registry.npmjs.org/nock/-/nock-13.2.9.tgz",
+ "integrity": "sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA==",
+ "requires": {
+ "debug": "^4.1.0",
+ "json-stringify-safe": "^5.0.1",
+ "lodash": "^4.17.21",
+ "propagate": "^2.0.0"
+ }
+ },
"node-addon-api": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz",
"integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA=="
},
+ "node-domexception": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz",
+ "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="
+ },
"node-fetch": {
"version": "https://registry.npmjs.org/@achingbrain/node-fetch/-/node-fetch-2.6.7.tgz",
"integrity": "sha512-iTASGs+HTFK5E4ZqcMsHmeJ4zodyq8L38lZV33jwqcBJYoUt3HjN4+ot+O9/0b+ke8ddE7UgOtVuZN/OkV19/g=="
@@ -31698,6 +40260,14 @@
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz",
"integrity": "sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q=="
},
+ "node-interval-tree": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/node-interval-tree/-/node-interval-tree-1.3.3.tgz",
+ "integrity": "sha512-K9vk96HdTK5fEipJwxSvIIqwTqr4e3HRJeJrNxBSeVMNSC/JWARRaX7etOLOuTmrRMeOI/K5TCJu3aWIwZiNTw==",
+ "requires": {
+ "shallowequal": "^1.0.2"
+ }
+ },
"node-libs-browser": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
@@ -31804,15 +40374,14 @@
}
},
"node-releases": {
- "version": "1.1.75",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.75.tgz",
- "integrity": "sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw==",
- "dev": true
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
+ "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg=="
},
"nodemon": {
- "version": "2.0.15",
- "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
- "integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
+ "version": "2.0.19",
+ "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.19.tgz",
+ "integrity": "sha512-4pv1f2bMDj0Eeg/MhGqxrtveeQ5/G/UVe9iO6uTZzjnRluSA4PVWf8CW99LUPwGB3eNIA7zUFoP77YuI7hOc0A==",
"dev": true,
"requires": {
"chokidar": "^3.5.2",
@@ -31821,10 +40390,10 @@
"minimatch": "^3.0.4",
"pstree.remy": "^1.1.8",
"semver": "^5.7.1",
+ "simple-update-notifier": "^1.0.7",
"supports-color": "^5.5.0",
"touch": "^3.1.0",
- "undefsafe": "^2.0.5",
- "update-notifier": "^5.1.0"
+ "undefsafe": "^2.0.5"
},
"dependencies": {
"debug": {
@@ -31844,6 +40413,11 @@
}
}
},
+ "nofilter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/nofilter/-/nofilter-1.0.4.tgz",
+ "integrity": "sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA=="
+ },
"nopt": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
@@ -31877,13 +40451,12 @@
"normalize-path": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"normalize-url": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz",
- "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA=="
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz",
+ "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A=="
},
"npm-run-path": {
"version": "4.0.1",
@@ -32131,7 +40704,7 @@
"oboe": {
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.5.tgz",
- "integrity": "sha1-VVQoTFQ6ImbXo48X4HOCH73jk80=",
+ "integrity": "sha512-zRFWiF+FoicxEs3jNI/WYUrVEgA7DeET/InK0XQuudGHRg8iIob3cNPrJTKaz4004uaA9Pbe+Dwa8iluhjLZWA==",
"requires": {
"http-https": "^1.0.0"
}
@@ -32192,6 +40765,11 @@
"word-wrap": "^1.2.3"
}
},
+ "original-require": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz",
+ "integrity": "sha512-5vdKMbE58WaE61uVD+PKyh8xdM398UnjPBLotW2sjG5MzHARwta/+NtMBCBA0t2WQblGYBvq5vsiZpWokwno+A=="
+ },
"os-browserify": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
@@ -32372,26 +40950,6 @@
"release-zalgo": "^1.0.0"
}
},
- "package-json": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz",
- "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==",
- "dev": true,
- "requires": {
- "got": "^9.6.0",
- "registry-auth-token": "^4.0.0",
- "registry-url": "^5.0.0",
- "semver": "^6.2.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
"pad-right": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz",
@@ -32445,6 +41003,29 @@
}
}
},
+ "param-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz",
+ "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==",
+ "requires": {
+ "no-case": "^2.2.0"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
+ }
+ },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -32472,9 +41053,9 @@
"dev": true
},
"parse-headers": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz",
- "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw=="
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.5.tgz",
+ "integrity": "sha512-ft3iAoLOB/MlwbNXgzy43SWGP6sQki2jQvAyBg/zDFAgr9bfNWZIUj42Kw2eJIl8kEi4PbgE6U1Zau/HwI75HA=="
},
"parse-json": {
"version": "4.0.0",
@@ -32515,6 +41096,29 @@
"dev": true,
"peer": true
},
+ "path-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz",
+ "integrity": "sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==",
+ "requires": {
+ "no-case": "^2.2.0"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
+ }
+ },
"path-dirname": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
@@ -32578,16 +41182,36 @@
}
},
"peer-id": {
- "version": "0.15.3",
- "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.3.tgz",
- "integrity": "sha512-pass5tk6Fbaz7PTD/3fJg2KWqaproHY0B0Ki8GQMEuMjkoLRcS2Vqt9yy6ob/+8uGBmWjRLtbMhaLV4HTyMDfw==",
+ "version": "0.15.4",
+ "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.15.4.tgz",
+ "integrity": "sha512-MDoBIMZYwQIAHaZQUwsIcvoFgdbIl5GtZMwSkXpIYvc5v0TSDv+u8WsTKrKt2Vv28tHFFDJQdVzu3T4qTPzK+w==",
"requires": {
"class-is": "^1.1.0",
- "libp2p-crypto": "^0.19.0",
+ "libp2p-crypto": "^0.20.0",
"minimist": "^1.2.5",
"multiformats": "^9.4.5",
"protobufjs": "^6.10.2",
"uint8arrays": "^3.0.0"
+ },
+ "dependencies": {
+ "libp2p-crypto": {
+ "version": "0.20.0",
+ "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.20.0.tgz",
+ "integrity": "sha512-WgIW9rYcWaO/5j2T6NW3R6Q46yvp2ZfFErqRMbi4/pOTL3T7+OROYpL/1iWVksWkXyurU/t2qFsIijWMxR5C4Q==",
+ "requires": {
+ "err-code": "^3.0.1",
+ "iso-random-stream": "^2.0.0",
+ "keypair": "^1.0.4",
+ "multiformats": "^9.4.5",
+ "noble-ed25519": "^1.2.6",
+ "noble-secp256k1": "^1.2.10",
+ "node-forge": "^0.10.0",
+ "pem-jwk": "^2.0.0",
+ "protobufjs": "^6.11.2",
+ "uint8arrays": "^3.0.0",
+ "ursa-optional": "^0.10.1"
+ }
+ }
}
},
"pem-jwk": {
@@ -32603,11 +41227,15 @@
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
+ },
"picomatch": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pidtree": {
"version": "0.5.0",
@@ -32618,9 +41246,7 @@
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
- "dev": true,
- "peer": true
+ "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
},
"pino": {
"version": "7.6.3",
@@ -32747,15 +41373,20 @@
"dev": true,
"peer": true
},
+ "precond": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/precond/-/precond-0.2.3.tgz",
+ "integrity": "sha512-QCYG84SgGyGzqJ/vlMsxeXd/pgL/I94ixdNFyh1PusWmTCyVfPJjZ1K1jvHtsbfnXQs2TSkEP2fR7QiMZAnKFQ=="
+ },
"prelude-ls": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
},
"prepend-http": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz",
- "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg=="
},
"prettier": {
"version": "2.6.2",
@@ -32763,11 +41394,6 @@
"integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==",
"dev": true
},
- "printj": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz",
- "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ=="
- },
"private-ip": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/private-ip/-/private-ip-2.2.1.tgz",
@@ -32826,6 +41452,15 @@
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-1.1.6.tgz",
"integrity": "sha1-zQTv9G9clcOn0EVZHXm14+AfEtc="
},
+ "promise-to-callback": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz",
+ "integrity": "sha512-uhMIZmKM5ZteDMfLgJnoSq9GCwsNKrYau73Awf1jIy6/eUcuuZ3P+CD9zUv0kJsIUbU+x6uLNIhXhLHDs1pNPA==",
+ "requires": {
+ "is-fn": "^1.0.0",
+ "set-immediate-shim": "^1.0.1"
+ }
+ },
"prop-types": {
"version": "15.7.2",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
@@ -32838,15 +41473,20 @@
"react-is": "^16.8.1"
}
},
+ "propagate": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz",
+ "integrity": "sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag=="
+ },
"proto-list": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
"integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk="
},
"protobufjs": {
- "version": "6.11.2",
- "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz",
- "integrity": "sha512-4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==",
+ "version": "6.11.3",
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz",
+ "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
@@ -32875,8 +41515,7 @@
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
- "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
- "dev": true
+ "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY="
},
"pseudomap": {
"version": "1.0.2",
@@ -32905,6 +41544,13 @@
"parse-asn1": "^5.0.0",
"randombytes": "^2.0.1",
"safe-buffer": "^5.1.2"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"pump": {
@@ -32980,14 +41626,10 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
- "pupa": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz",
- "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==",
- "dev": true,
- "requires": {
- "escape-goat": "^2.0.0"
- }
+ "pure-rand": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.1.tgz",
+ "integrity": "sha512-ksWccjmXOHU2gJBnH0cK1lSYdvSZ0zLoCMSz/nTGh6hDvCSgcRxDyIcOBD6KNxFz3xhMPm/T267Tbe2JRymKEQ=="
},
"qs": {
"version": "6.10.3",
@@ -33031,6 +41673,11 @@
"resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz",
"integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ=="
},
+ "quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="
+ },
"randombytes": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
@@ -33345,7 +41992,6 @@
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
"requires": {
"picomatch": "^2.2.1"
}
@@ -33363,6 +42009,25 @@
"ms": "^2.1.1"
}
},
+ "redux": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/redux/-/redux-3.7.2.tgz",
+ "integrity": "sha512-pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==",
+ "requires": {
+ "lodash": "^4.2.1",
+ "lodash-es": "^4.2.1",
+ "loose-envify": "^1.1.0",
+ "symbol-observable": "^1.0.3"
+ }
+ },
+ "redux-saga": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/redux-saga/-/redux-saga-1.0.0.tgz",
+ "integrity": "sha512-GvJWs/SzMvEQgeaw6sRMXnS2FghlvEGsHiEtTLpJqc/FHF3I5EE/B+Hq5lyHZ8LSoT2r/X/46uWvkdCnK9WgHA==",
+ "requires": {
+ "@redux-saga/core": "^1.0.0"
+ }
+ },
"reflect-metadata": {
"version": "0.1.13",
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
@@ -33372,9 +42037,7 @@
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true,
- "peer": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regex-not": {
"version": "1.0.2",
@@ -33426,14 +42089,13 @@
"dev": true
},
"regexp.prototype.flags": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz",
- "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==",
- "dev": true,
- "peer": true,
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
}
},
"regexpp": {
@@ -33441,24 +42103,6 @@
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
"integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg=="
},
- "registry-auth-token": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz",
- "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==",
- "dev": true,
- "requires": {
- "rc": "^1.2.8"
- }
- },
- "registry-url": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz",
- "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==",
- "dev": true,
- "requires": {
- "rc": "^1.2.8"
- }
- },
"relative-to-absolute-iri": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.6.tgz",
@@ -33558,6 +42202,31 @@
"resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
"integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
+ "reselect": {
+ "version": "4.1.6",
+ "resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.6.tgz",
+ "integrity": "sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ=="
+ },
+ "reselect-tree": {
+ "version": "1.3.7",
+ "resolved": "https://registry.npmjs.org/reselect-tree/-/reselect-tree-1.3.7.tgz",
+ "integrity": "sha512-kZN+C1cVJ6fFN2smSb0l4UvYZlRzttgnu183svH4NrU22cBY++ikgr2QT75Uuk4MYpv5gXSVijw4c5U6cx6GKg==",
+ "requires": {
+ "debug": "^3.1.0",
+ "json-pointer": "^0.6.1",
+ "reselect": "^4.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ }
+ }
+ },
"resolve": {
"version": "1.20.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
@@ -33567,6 +42236,11 @@
"path-parse": "^1.0.6"
}
},
+ "resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
+ },
"resolve-from": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
@@ -33597,11 +42271,18 @@
"peer": true
},
"responselike": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz",
- "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz",
+ "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==",
"requires": {
- "lowercase-keys": "^1.0.0"
+ "lowercase-keys": "^2.0.0"
+ },
+ "dependencies": {
+ "lowercase-keys": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz",
+ "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="
+ }
}
},
"restore-cursor": {
@@ -33672,13 +42353,6 @@
"integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==",
"requires": {
"bn.js": "^5.2.0"
- },
- "dependencies": {
- "bn.js": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz",
- "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw=="
- }
}
},
"rolling-rate-limiter": {
@@ -33699,11 +42373,15 @@
"aproba": "^1.1.1"
}
},
+ "rustbn.js": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.2.0.tgz",
+ "integrity": "sha512-4VlvkRUuCJvr2J6Y0ImW7NvTCriMi7ErOAqWk1y69vAdoNIzCF3yPmgeNzx+RQTLEDFq5sHfscn1MwHxP9hNfA=="
+ },
"rxjs": {
- "version": "7.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
- "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
- "dev": true,
+ "version": "7.5.6",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz",
+ "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==",
"requires": {
"tslib": "^2.1.0"
}
@@ -33713,6 +42391,14 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
+ "safe-event-emitter": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/safe-event-emitter/-/safe-event-emitter-1.0.1.tgz",
+ "integrity": "sha512-e1wFe99A91XYYxoQbcq2ZJUWurxEyP8vfz7A7vuUe1s95q8r5ebraVaA1BukYJcpM6V16ugWoD9vngi8Ccu5fg==",
+ "requires": {
+ "events": "^3.0.0"
+ }
+ },
"safe-regex": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
@@ -33807,31 +42493,19 @@
"integrity": "sha1-KpsZ4lCoFwmSMaW5mk2vgLf77VQ=",
"dev": true
},
+ "semaphore": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
+ "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA=="
+ },
"semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"requires": {
"lru-cache": "^6.0.0"
}
},
- "semver-diff": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz",
- "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==",
- "dev": true,
- "requires": {
- "semver": "^6.3.0"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
"send": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
@@ -33874,6 +42548,38 @@
}
}
},
+ "sentence-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz",
+ "integrity": "sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==",
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case-first": "^1.1.2"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ },
+ "upper-case-first": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz",
+ "integrity": "sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==",
+ "requires": {
+ "upper-case": "^1.1.1"
+ }
+ }
+ }
+ },
"seq-queue": {
"version": "0.0.5",
"resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz",
@@ -33949,7 +42655,6 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
"requires": {
"randombytes": "^2.1.0"
}
@@ -33987,6 +42692,11 @@
"resolved": "https://registry.npmjs.org/set-delayed-interval/-/set-delayed-interval-1.0.0.tgz",
"integrity": "sha512-29fhAwuZlLcuBnW/EwxvLcg2D3ELX+VBDNhnavs3YYkab72qmrcSeQNVdzl8EcPPahGQXhBM6MKdPLCQGMDakw=="
},
+ "set-immediate-shim": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz",
+ "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ=="
+ },
"set-value": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
@@ -34019,6 +42729,11 @@
"safe-buffer": "^5.0.1"
}
},
+ "shallowequal": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz",
+ "integrity": "sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ=="
+ },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -34065,6 +42780,16 @@
"decompress-response": "^3.3.0",
"once": "^1.3.1",
"simple-concat": "^1.0.0"
+ },
+ "dependencies": {
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
+ "requires": {
+ "mimic-response": "^1.0.0"
+ }
+ }
}
},
"simple-git": {
@@ -34092,10 +42817,59 @@
}
}
},
- "sleep-async": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/sleep-async/-/sleep-async-1.0.5.tgz",
- "integrity": "sha512-G2B+GBBshG+gSKZZeCTX5ONnF7XVUVpYP0O4QYWmXH6XIpEUfcFbWWwQKleZixg68PWEArvVEi23159F7ohlUQ=="
+ "simple-update-notifier": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.0.7.tgz",
+ "integrity": "sha512-BBKgR84BJQJm6WjWFMHgLVuo61FBDSj1z/xSFUIozqO6wO7ii0JxCqlIud7Enr/+LhlbNI0whErq96P2qHNWew==",
+ "dev": true,
+ "requires": {
+ "semver": "~7.0.0"
+ },
+ "dependencies": {
+ "semver": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
+ "dev": true
+ }
+ }
+ },
+ "sinon": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/sinon/-/sinon-14.0.0.tgz",
+ "integrity": "sha512-ugA6BFmE+WrJdh0owRZHToLd32Uw3Lxq6E6LtNRU+xTVBefx632h03Q7apXWRsRdZAJ41LB8aUfn2+O4jsDNMw==",
+ "dev": true,
+ "requires": {
+ "@sinonjs/commons": "^1.8.3",
+ "@sinonjs/fake-timers": "^9.1.2",
+ "@sinonjs/samsam": "^6.1.1",
+ "diff": "^5.0.0",
+ "nise": "^5.1.1",
+ "supports-color": "^7.2.0"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz",
+ "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
},
"slice-ansi": {
"version": "4.0.0",
@@ -34136,6 +42910,29 @@
"integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==",
"dev": true
},
+ "snake-case": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
+ "integrity": "sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==",
+ "requires": {
+ "no-case": "^2.2.0"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
+ }
+ },
"snapdragon": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
@@ -34353,8 +43150,7 @@
"source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
- "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
+ "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
},
"source-map-resolve": {
"version": "0.5.3",
@@ -34775,14 +43571,14 @@
"integrity": "sha512-GYbJh0ife8PvryWSyFifY1m1uj6zO12d9duuP6xltiOolUz44eKasp5gbFhRbFbLy50ik6hcKn4Pbxl9AkxB+Q=="
},
"streamsearch": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
- "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo="
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
},
"strict-uri-encode": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM="
+ "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ=="
},
"string_decoder": {
"version": "1.3.0",
@@ -34833,21 +43629,23 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz",
- "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"string.prototype.trimstart": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz",
- "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"strip-ansi": {
@@ -34891,6 +43689,22 @@
"has-flag": "^3.0.0"
}
},
+ "swap-case": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz",
+ "integrity": "sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==",
+ "requires": {
+ "lower-case": "^1.1.1",
+ "upper-case": "^1.1.1"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ }
+ }
+ },
"swarm-js": {
"version": "0.1.40",
"resolved": "https://registry.npmjs.org/swarm-js/-/swarm-js-0.1.40.tgz",
@@ -34918,17 +43732,12 @@
"ieee754": "^1.1.13"
}
},
- "eth-lib": {
- "version": "0.1.29",
- "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.1.29.tgz",
- "integrity": "sha512-bfttrr3/7gG4E02HoWTDUcDDslN003OlOoBxk9virpAZQ1ja/jDgwkWB8QfJF7ojuEowrqy+lzp9VcJG7/k5bQ==",
+ "decompress-response": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz",
+ "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==",
"requires": {
- "bn.js": "^4.11.6",
- "elliptic": "^6.4.0",
- "nano-json-stream-parser": "^0.1.2",
- "servify": "^0.1.12",
- "ws": "^3.0.0",
- "xhr-request-promise": "^0.1.2"
+ "mimic-response": "^1.0.0"
}
},
"fs-extra": {
@@ -34944,7 +43753,7 @@
"get-stream": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ="
+ "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ=="
},
"got": {
"version": "7.1.0",
@@ -34970,12 +43779,17 @@
"is-plain-obj": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
- "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4="
+ "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg=="
},
"is-stream": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
+ },
+ "lowercase-keys": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA=="
},
"p-cancelable": {
"version": "0.3.0",
@@ -34985,26 +43799,18 @@
"p-timeout": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz",
- "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=",
+ "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==",
"requires": {
"p-finally": "^1.0.0"
}
- },
- "prepend-http": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
- },
- "url-parse-lax": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "requires": {
- "prepend-http": "^1.0.1"
- }
}
}
},
+ "symbol-observable": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
+ "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
+ },
"sync-request": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz",
@@ -35078,11 +43884,11 @@
},
"dependencies": {
"mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"requires": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
}
},
"safe-buffer": {
@@ -35098,9 +43904,9 @@
}
},
"terser": {
- "version": "4.8.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
- "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz",
+ "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==",
"dev": true,
"peer": true,
"requires": {
@@ -35379,7 +44185,7 @@
"timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8="
+ "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA=="
},
"timeout-abort-controller": {
"version": "1.1.1",
@@ -35416,6 +44222,30 @@
"next-tick": "1"
}
},
+ "title-case": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
+ "integrity": "sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==",
+ "requires": {
+ "no-case": "^2.2.0",
+ "upper-case": "^1.0.3"
+ },
+ "dependencies": {
+ "lower-case": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz",
+ "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA=="
+ },
+ "no-case": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz",
+ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==",
+ "requires": {
+ "lower-case": "^1.1.1"
+ }
+ }
+ }
+ },
"tmp": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz",
@@ -35435,8 +44265,7 @@
"to-fast-properties": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
- "dev": true
+ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
},
"to-object-path": {
"version": "0.3.0",
@@ -35562,7 +44391,6 @@
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
"requires": {
"is-number": "^7.0.0"
}
@@ -35621,11 +44449,39 @@
"resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
"integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
},
+ "treeify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz",
+ "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A=="
+ },
"triple-beam": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
},
+ "truffle": {
+ "version": "5.5.26",
+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.5.26.tgz",
+ "integrity": "sha512-czL1BxabxFRhH8AK2LrF7d6hO8zS74meccM0dLxh78ahEAGx2BRPfw2dUZp2Ad5kVvVZGIedJeg9hhpXbVuIAw==",
+ "requires": {
+ "@truffle/db": "^1.0.18",
+ "@truffle/db-loader": "^0.1.28",
+ "@truffle/debugger": "^11.0.4",
+ "app-module-path": "^2.2.0",
+ "ganache": "7.4.0",
+ "mocha": "9.2.2",
+ "original-require": "^1.0.1"
+ }
+ },
+ "truffle-assertions": {
+ "version": "0.9.2",
+ "resolved": "https://registry.npmjs.org/truffle-assertions/-/truffle-assertions-0.9.2.tgz",
+ "integrity": "sha512-9g2RhaxU2F8DeWhqoGQvL/bV8QVoSnQ6PY+ZPvYRP5eF7+/8LExb4mjLx/FeliLTjc3Tv1SABG05Gu5qQ/ErmA==",
+ "requires": {
+ "assertion-error": "^1.1.0",
+ "lodash.isequal": "^4.5.0"
+ }
+ },
"truncate-utf8-bytes": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
@@ -35648,9 +44504,9 @@
}
},
"tslib": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
- "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ=="
},
"tty-browserify": {
"version": "0.0.0",
@@ -35672,6 +44528,11 @@
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
+ "tweetnacl-util": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz",
+ "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw=="
+ },
"type": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz",
@@ -35719,6 +44580,27 @@
"is-typedarray": "^1.0.0"
}
},
+ "typescript-compare": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/typescript-compare/-/typescript-compare-0.0.2.tgz",
+ "integrity": "sha512-8ja4j7pMHkfLJQO2/8tut7ub+J3Lw2S3061eJLFQcvs3tsmJKp8KG5NtpLn7KcY2w08edF74BSVN7qJS0U6oHA==",
+ "requires": {
+ "typescript-logic": "^0.0.0"
+ }
+ },
+ "typescript-logic": {
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/typescript-logic/-/typescript-logic-0.0.0.tgz",
+ "integrity": "sha512-zXFars5LUkI3zP492ls0VskH3TtdeHCqu0i7/duGt60i5IGPIpAHE/DWo5FqJ6EjQ15YKXrt+AETjv60Dat34Q=="
+ },
+ "typescript-tuple": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/typescript-tuple/-/typescript-tuple-2.2.1.tgz",
+ "integrity": "sha512-Zcr0lbt8z5ZdEzERHAMAniTiIKerFCMgd7yjq1fPnDJ43et/k9twIFQMUYff9k5oXcsQ0WpvFcgzK2ZKASoW6Q==",
+ "requires": {
+ "typescript-compare": "^0.0.2"
+ }
+ },
"uglify-js": {
"version": "3.15.5",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.15.5.tgz",
@@ -35863,13 +44745,13 @@
}
},
"unbox-primitive": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz",
- "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
}
},
@@ -35884,6 +44766,11 @@
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.1.tgz",
"integrity": "sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g=="
},
+ "undici": {
+ "version": "5.8.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.8.0.tgz",
+ "integrity": "sha512-1F7Vtcez5w/LwH2G2tGnFIihuWUlc58YidwLiCv+jR2Z50x0tNXpRRw7eOIJ+GvqCqIkg9SB7NWAJ/T9TLfv8Q=="
+ },
"union-value": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
@@ -35915,15 +44802,6 @@
"imurmurhash": "^0.1.4"
}
},
- "unique-string": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz",
- "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==",
- "dev": true,
- "requires": {
- "crypto-random-string": "^2.0.0"
- }
- },
"universalify": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
@@ -36037,28 +44915,20 @@
"optional": true,
"peer": true
},
- "update-notifier": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-5.1.0.tgz",
- "integrity": "sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==",
- "dev": true,
+ "update-browserslist-db": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz",
+ "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==",
"requires": {
- "boxen": "^5.0.0",
- "chalk": "^4.1.0",
- "configstore": "^5.0.1",
- "has-yarn": "^2.1.0",
- "import-lazy": "^2.1.0",
- "is-ci": "^2.0.0",
- "is-installed-globally": "^0.4.0",
- "is-npm": "^5.0.0",
- "is-yarn-global": "^0.3.0",
- "latest-version": "^5.1.0",
- "pupa": "^2.1.1",
- "semver": "^7.3.4",
- "semver-diff": "^3.1.1",
- "xdg-basedir": "^4.0.0"
+ "escalade": "^3.1.1",
+ "picocolors": "^1.0.0"
}
},
+ "upper-case": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz",
+ "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA=="
+ },
"upper-case-first": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz",
@@ -36109,22 +44979,22 @@
}
},
"url-parse-lax": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz",
- "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=",
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==",
"requires": {
- "prepend-http": "^2.0.0"
+ "prepend-http": "^1.0.1"
}
},
"url-set-query": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz",
- "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk="
+ "integrity": "sha512-3AChu4NiXquPfeckE5R5cGdiHCMWJx1dwCWOmWIL4KHAziJNOFIYJlpGFeKDvwLPHovZRCxK3cYlwzqI9Vp+Gg=="
},
"url-to-options": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz",
- "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k="
+ "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A=="
},
"ursa-optional": {
"version": "0.10.2",
@@ -36143,11 +45013,11 @@
"peer": true
},
"utf-8-validate": {
- "version": "5.0.6",
- "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.6.tgz",
- "integrity": "sha512-hoY0gOf9EkCw+nimK21FVKHUIG1BMqSiRwxB/q3A9yKZOrOI99PP77BxmarDqWz6rG3vVYiBWfhG8z2Tl+7fZA==",
+ "version": "5.0.9",
+ "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.9.tgz",
+ "integrity": "sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==",
"requires": {
- "node-gyp-build": "^4.2.0"
+ "node-gyp-build": "^4.3.0"
}
},
"utf8": {
@@ -36390,7 +45260,7 @@
"glob-parent": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
- "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
"dev": true,
"optional": true,
"peer": true,
@@ -36646,151 +45516,93 @@
}
}
},
+ "web-streams-polyfill": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz",
+ "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q=="
+ },
"web-streams-ponyfill": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz",
"integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA=="
},
"web3": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3/-/web3-1.6.0.tgz",
- "integrity": "sha512-rWpXnO88MiVX5yTRqMBCVKASxc7QDkXZZUl1D48sKlbX4dt3BAV+nVMVUKCBKiluZ5Bp8pDrVCUdPx/jIYai5Q==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3/-/web3-1.7.5.tgz",
+ "integrity": "sha512-3jHZTWyXt975AOXgnZKayiSWDLpoSKk9fZtLk1hURQtt7AdSbXPT8AK9ooBCm0Dt3GYaOeNcHGaiHC3gtyqhLg==",
"requires": {
- "web3-bzz": "1.6.0",
- "web3-core": "1.6.0",
- "web3-eth": "1.6.0",
- "web3-eth-personal": "1.6.0",
- "web3-net": "1.6.0",
- "web3-shh": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "web3-bzz": "1.7.5",
+ "web3-core": "1.7.5",
+ "web3-eth": "1.7.5",
+ "web3-eth-personal": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-shh": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-bzz": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.6.0.tgz",
- "integrity": "sha512-ugYV6BsinwhIi0CsLWINBz4mqN9wR9vNG0WmyEbdECjxcPyr6vkaWt4qi0zqlUxEnYAwGj4EJXNrbjPILntQTQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.7.5.tgz",
+ "integrity": "sha512-Z53sY0YK/losqjJncmL4vP0zZI9r6tiXg6o7R6e1JD2Iy7FH3serQvU+qXmPjqEBzsnhf8wTG+YcBPB3RHpr0Q==",
"requires": {
"@types/node": "^12.12.6",
- "got": "9.6.0",
+ "got": "12.1.0",
"swarm-js": "^0.1.40"
},
"dependencies": {
"@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
}
}
},
"web3-core": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.6.0.tgz",
- "integrity": "sha512-o0WsLrJ2yD+HAAc29lGMWJef/MutTyuzpJC0UzLJtIAQJqtpDalzWINEu4j8XYXGk34N/V6vudtzRPo23QEE6g==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.7.5.tgz",
+ "integrity": "sha512-UgOWXZr1fR/3cUQJKWbfMwRxj1/N7o6RSd/dHqdXBlOD+62EjNZItFmLRg5veq5kp9YfXzrNw9bnDkXfsL+nKQ==",
"requires": {
- "@types/bn.js": "^4.11.5",
+ "@types/bn.js": "^5.1.0",
"@types/node": "^12.12.6",
"bignumber.js": "^9.0.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-requestmanager": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-requestmanager": "1.7.5",
+ "web3-utils": "1.7.5"
},
"dependencies": {
"@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
- },
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
}
}
},
"web3-core-helpers": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.6.0.tgz",
- "integrity": "sha512-H/IAH/0mrgvad/oxVKiAMC7qDzMrPPe/nRKmJOoIsupRg9/frvL62kZZiHhqVD1HMyyswbQFC69QRl7JqWzvxg==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.7.5.tgz",
+ "integrity": "sha512-lDDjTks6Q6aNUO87RYrY2xub3UWTKr/RIWxpHJODEqkLxZS1dWdyliJ6aIx3031VQwsNT5HE7NvABe/t0p3iDQ==",
"requires": {
- "web3-eth-iban": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "web3-eth-iban": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-core-method": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.6.0.tgz",
- "integrity": "sha512-cHekyEil4mtcCOk6Q1Zh4y+2o5pTwsLIxP6Bpt4BRtZgdsyPiadYJpkLAVT/quch5xN7Qs5ZwG5AvRCS3VwD2g==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.7.5.tgz",
+ "integrity": "sha512-ApTvq1Llzlbxmy0n4L7QaE6NodIsR80VJqk8qN4kLg30SGznt/pNJFebryLI2kpyDmxSgj1TjEWzmHJBp6FhYg==",
"requires": {
- "@ethereumjs/common": "^2.4.0",
- "@ethersproject/transactions": "^5.0.0-beta.135",
- "web3-core-helpers": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "@ethersproject/transactions": "^5.6.2",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-core-promievent": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.6.0.tgz",
- "integrity": "sha512-ZzsevjMXWkhqW9dnVfTfb1OUcK7jKcKPvPIbQ4boJccNgvNZPZKlo8xB4pkAX38n4c59O5mC7Lt/z2QL/M5CeQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-promievent/-/web3-core-promievent-1.7.5.tgz",
+ "integrity": "sha512-uZ1VRErVuhiLtHlyt3oEH/JSvAf6bWPndChHR9PG7i1Zfqm6ZVCeM91ICTPmiL8ddsGQOxASpnJk4vhApcTIww==",
"requires": {
"eventemitter3": "4.0.4"
},
@@ -36803,24 +45615,24 @@
}
},
"web3-core-requestmanager": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.6.0.tgz",
- "integrity": "sha512-CY5paPdiDXKTXPWaEUZekDfUXSuoE2vPxolwqzsvKwFWH5+H1NaXgrc+D5HpufgSvTXawTw0fy7IAicg8+PWqA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-requestmanager/-/web3-core-requestmanager-1.7.5.tgz",
+ "integrity": "sha512-3KpfxW/wVH4mgwWEsSJGHKrtRVoijWlDxtUrm17xgtqRNZ2mFolifKnHAUKa0fY48C9CrxmcCiMIi3W4G6WYRw==",
"requires": {
"util": "^0.12.0",
- "web3-core-helpers": "1.6.0",
- "web3-providers-http": "1.6.0",
- "web3-providers-ipc": "1.6.0",
- "web3-providers-ws": "1.6.0"
+ "web3-core-helpers": "1.7.5",
+ "web3-providers-http": "1.7.5",
+ "web3-providers-ipc": "1.7.5",
+ "web3-providers-ws": "1.7.5"
}
},
"web3-core-subscriptions": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.6.0.tgz",
- "integrity": "sha512-kY9WZUY/m1URSOv3uTLshoZD9ZDiFKReIzHuPUkxFpD5oYNmr1/aPQNPCrrMxKODR7UVX/D90FxWwCYqHhLaxQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.7.5.tgz",
+ "integrity": "sha512-YK6utQ7Wwjbe4XZOIA8quWGBPi1lFDS1A+jQYwxKKrCvm6BloBNc3FhvrcSYlDhLe/kOy8+2Je8i9amndgT4ww==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.6.0"
+ "web3-core-helpers": "1.7.5"
},
"dependencies": {
"eventemitter3": {
@@ -36831,276 +45643,169 @@
}
},
"web3-eth": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.6.0.tgz",
- "integrity": "sha512-qJMvai//r0be6I9ghU24/152f0zgJfYC23TMszN3Y6jse1JtjCBP2TlTibFcvkUN1RRdIUY5giqO7ZqAYAmp7w==",
- "requires": {
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-eth-accounts": "1.6.0",
- "web3-eth-contract": "1.6.0",
- "web3-eth-ens": "1.6.0",
- "web3-eth-iban": "1.6.0",
- "web3-eth-personal": "1.6.0",
- "web3-net": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.7.5.tgz",
+ "integrity": "sha512-BucjvqZyDWYkGlsFX+OnOBub0YutlC1KZiNGibdmvtNX0NQK+8iw1uzAoL9yTTwCSszL7lnkFe8N+HCOl9B4Dw==",
+ "requires": {
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-eth-accounts": "1.7.5",
+ "web3-eth-contract": "1.7.5",
+ "web3-eth-ens": "1.7.5",
+ "web3-eth-iban": "1.7.5",
+ "web3-eth-personal": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-eth-abi": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.6.0.tgz",
- "integrity": "sha512-fImomGE9McuTMJLwK8Tp0lTUzXqCkWeMm00qPVIwpJ/h7lCw9UFYV9+4m29wSqW6FF+FIZKwc6UBEf9dlx3orA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.7.5.tgz",
+ "integrity": "sha512-qWHvF7sayxql9BD1yqK9sZRLBQ66eJzGeaU53Y1PRq2iFPrhY6NUWxQ3c3ps0rg+dyObvRbloviWpKXcS4RE/A==",
"requires": {
- "@ethersproject/abi": "5.0.7",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "@ethersproject/abi": "^5.6.3",
+ "web3-utils": "1.7.5"
}
},
"web3-eth-accounts": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.6.0.tgz",
- "integrity": "sha512-2f6HS4KIH4laAsNCOfbNX3dRiQosqSY2TRK86C8jtAA/QKGdx+5qlPfYzbI2RjG81iayb2+mVbHIaEaBGZ8sGw==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.7.5.tgz",
+ "integrity": "sha512-AzMLoTj3RGwKpyp3x3TtHrEeU4VpR99iMOD6NKrWSDumS6QEi0lCo+y7QZhdTlINw3iIA3SFIdvbAOO4NCHSDg==",
"requires": {
- "@ethereumjs/common": "^2.3.0",
- "@ethereumjs/tx": "^3.2.1",
+ "@ethereumjs/common": "^2.5.0",
+ "@ethereumjs/tx": "^3.3.2",
"crypto-browserify": "3.12.0",
"eth-lib": "0.2.8",
"ethereumjs-util": "^7.0.10",
"scrypt-js": "^3.0.1",
"uuid": "3.3.2",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-utils": "1.7.5"
},
"dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
+ "eth-lib": {
+ "version": "0.2.8",
+ "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz",
+ "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==",
+ "requires": {
+ "bn.js": "^4.11.6",
+ "elliptic": "^6.4.0",
+ "xhr-request-promise": "^0.1.2"
+ }
+ },
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
- },
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
}
}
},
"web3-eth-contract": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.6.0.tgz",
- "integrity": "sha512-ZUtO77zFnxuFtrc+D+iJ3AzNgFXAVcKnhEYN7f1PNz/mFjbtE6dJ+ujO0mvMbxIZF02t9IZv0CIXRpK0rDvZAw==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.7.5.tgz",
+ "integrity": "sha512-qab7NPJRKRlTs58ozsqK8YIEwWpxIm3vD/okSIKBGkFx5gIHWW+vGmMh5PDSfefLJM9rCd+T+Lc0LYvtME7uqg==",
"requires": {
- "@types/bn.js": "^4.11.5",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "@types/bn.js": "^5.1.0",
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-eth-ens": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.6.0.tgz",
- "integrity": "sha512-AG24PNv9qbYHSpjHcU2pViOII0jvIR7TeojJ2bxXSDqfcgHuRp3NZGKv6xFvT4uNI4LEQHUhSC7bzHoNF5t8CA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.7.5.tgz",
+ "integrity": "sha512-k1Q0msdRv/wac2egpZBIwG3n/sa/KdrVmVJvFm471gLTL4xfUizV5qJjkDVf+ikf9JyDvWJTs5eWNUUbOFIw/A==",
"requires": {
"content-hash": "^2.5.2",
"eth-ens-namehash": "2.0.8",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-promievent": "1.6.0",
- "web3-eth-abi": "1.6.0",
- "web3-eth-contract": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-promievent": "1.7.5",
+ "web3-eth-abi": "1.7.5",
+ "web3-eth-contract": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-eth-iban": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.6.0.tgz",
- "integrity": "sha512-HM/bKBS/e8qg0+Eh7B8C/JVG+GkR4AJty17DKRuwMtrh78YsonPj7GKt99zS4n5sDLFww1Imu/ZIk3+K5uJCjw==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.7.5.tgz",
+ "integrity": "sha512-mn2W5t/1IpL8OZvzAabLKT4kvwRnZSJ9K0tctndl9sDNWkfITYQibEEhUaNNA50Q5fJKgVudHI/m0gwIVTyG8Q==",
"requires": {
- "bn.js": "^4.11.9",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "bn.js": "^5.2.1",
+ "web3-utils": "1.7.5"
}
},
"web3-eth-personal": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.6.0.tgz",
- "integrity": "sha512-8ohf4qAwbShf4RwES2tLHVqa+pHZnS5Q6tV80sU//bivmlZeyO1W4UWyNn59vu9KPpEYvLseOOC6Muxuvr8mFQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.7.5.tgz",
+ "integrity": "sha512-txh2P/eN8I4AOUKFi9++KKddoD0tWfCuu9Y1Kc41jSRbk6smO88Fum0KWNmYFYhSCX2qiknS1DfqsONl3igoKQ==",
"requires": {
"@types/node": "^12.12.6",
- "web3-core": "1.6.0",
- "web3-core-helpers": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-net": "1.6.0",
- "web3-utils": "1.6.0"
+ "web3-core": "1.7.5",
+ "web3-core-helpers": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-net": "1.7.5",
+ "web3-utils": "1.7.5"
},
"dependencies": {
"@types/node": {
- "version": "12.20.29",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.29.tgz",
- "integrity": "sha512-dU2ypz+gO5va1OBvs0iT3BNHG5SgTqRvq8r+kU3e/LAseKapUJ8zTUE9Ve9fTpi27tN/7ahOAhCJwQWsffvsyw=="
- },
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
}
}
},
"web3-net": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.6.0.tgz",
- "integrity": "sha512-LFfG95ovTT2sNHkO1TEfsaKpYcxOSUtbuwHQ0K3G0e5nevKDJkPEFIqIcob40yiwcWoqEjENJP9Bjk8CRrZ99Q==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.7.5.tgz",
+ "integrity": "sha512-xwuCb2YWw49PmW81AJQ/G+Xi2ikRsYyZXSgyPt4LmZuKjiqg/6kSdK8lZvUi3Pi3wM+QDBXbpr73M/WEkW0KvA==",
"requires": {
- "web3-core": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-utils": "1.6.0"
- },
- "dependencies": {
- "web3-utils": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.6.0.tgz",
- "integrity": "sha512-bgCAWAeQnJF035YTFxrcHJ5mGEfTi/McsjqldZiXRwlHK7L1PyOqvXiQLE053dlzvy1kdAxWl/sSSfLMyNUAXg==",
- "requires": {
- "bn.js": "^4.11.9",
- "ethereum-bloom-filters": "^1.0.6",
- "ethereumjs-util": "^7.1.0",
- "ethjs-unit": "0.1.6",
- "number-to-bn": "1.7.0",
- "randombytes": "^2.1.0",
- "utf8": "3.0.0"
- }
- }
+ "web3-core": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-utils": "1.7.5"
}
},
"web3-providers-http": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.6.0.tgz",
- "integrity": "sha512-sNxHFNv3lnxpmULt34AS6M36IYB/Hzm2Et4yPNzdP1XE644D8sQBZQZaJQdTaza5HfrlwoqU6AOK935armqGuA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-http/-/web3-providers-http-1.7.5.tgz",
+ "integrity": "sha512-vPgr4Kzy0M3CHtoP/Bh7qwK/D9h2fhjpoqctdMWVJseOfeTgfOphCKN0uwV8w2VpZgDPXA8aeTdBx5OjmDdStA==",
"requires": {
- "web3-core-helpers": "1.6.0",
- "xhr2-cookies": "1.1.0"
+ "abortcontroller-polyfill": "^1.7.3",
+ "cross-fetch": "^3.1.4",
+ "es6-promise": "^4.2.8",
+ "web3-core-helpers": "1.7.5"
}
},
"web3-providers-ipc": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.6.0.tgz",
- "integrity": "sha512-ETYdfhpGiGoWpmmSJnONvnPfd3TPivHEGjXyuX+L5FUsbMOVZj9MFLNIS19Cx/YGL8UWJ/8alLJoTcWSIdz/aA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-ipc/-/web3-providers-ipc-1.7.5.tgz",
+ "integrity": "sha512-aNHx+RAROzO+apDEzy8Zncj78iqWBadIXtpmFDg7uiTn8i+oO+IcP1Yni7jyzkltsysVJHgHWG4kPx50ANCK3Q==",
"requires": {
"oboe": "2.1.5",
- "web3-core-helpers": "1.6.0"
+ "web3-core-helpers": "1.7.5"
}
},
"web3-providers-ws": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.6.0.tgz",
- "integrity": "sha512-eNRmlhOPCpuVYwBrKBBQRLGPFb4U1Uo44r9EWV69Cpo4gP6XeBTl6nkawhLz6DS0fq79apyPfItJVuSfAy77pA==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-providers-ws/-/web3-providers-ws-1.7.5.tgz",
+ "integrity": "sha512-9uJNVVkIGC8PmM9kNbgPth56HDMSSsxZh3ZEENdwO3LNWemaADiQYUDCsD/dMVkn0xsGLHP5dgAy4Q5msqySLg==",
"requires": {
"eventemitter3": "4.0.4",
- "web3-core-helpers": "1.6.0",
+ "web3-core-helpers": "1.7.5",
"websocket": "^1.0.32"
},
"dependencies": {
@@ -37112,14 +45817,28 @@
}
},
"web3-shh": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.6.0.tgz",
- "integrity": "sha512-ymN0OFL81WtEeSyb+PFpuUv39fR3frGwsZnIg5EVPZvrOIdaDSFcGSLDmafUt0vKSubvLMVYIBOCskRD6YdtEQ==",
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.7.5.tgz",
+ "integrity": "sha512-aCIWJyLMH5H76OybU4ZpUCJ93yNOPATGhJ+KboRPU8QZDzS2CcVhtEzyl27bbvw+rSnVroMLqBgTXBB4mmKI7A==",
+ "requires": {
+ "web3-core": "1.7.5",
+ "web3-core-method": "1.7.5",
+ "web3-core-subscriptions": "1.7.5",
+ "web3-net": "1.7.5"
+ }
+ },
+ "web3-utils": {
+ "version": "1.7.5",
+ "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.7.5.tgz",
+ "integrity": "sha512-9AqNOziQky4wNQadEwEfHiBdOZqopIHzQQVzmvvv6fJwDSMhP+khqmAZC7YTiGjs0MboyZ8tWNivqSO1699XQw==",
"requires": {
- "web3-core": "1.6.0",
- "web3-core-method": "1.6.0",
- "web3-core-subscriptions": "1.6.0",
- "web3-net": "1.6.0"
+ "bn.js": "^5.2.1",
+ "ethereum-bloom-filters": "^1.0.6",
+ "ethereumjs-util": "^7.1.0",
+ "ethjs-unit": "0.1.6",
+ "number-to-bn": "1.7.0",
+ "randombytes": "^2.1.0",
+ "utf8": "3.0.0"
}
},
"webidl-conversions": {
@@ -37398,10 +46117,15 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
+ "whatwg-fetch": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
+ "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
+ },
"whatwg-url": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
@@ -37445,25 +46169,16 @@
"integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"which-typed-array": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz",
- "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==",
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
+ "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
"requires": {
"available-typed-arrays": "^1.0.5",
"call-bind": "^1.0.2",
- "es-abstract": "^1.18.5",
- "foreach": "^2.0.5",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
"has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.7"
- }
- },
- "widest-line": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
- "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
- "dev": true,
- "requires": {
- "string-width": "^4.0.0"
+ "is-typed-array": "^1.1.9"
}
},
"winston": {
@@ -37580,12 +46295,6 @@
"ultron": "~1.1.0"
}
},
- "xdg-basedir": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz",
- "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==",
- "dev": true
- },
"xhr": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz",
@@ -37622,7 +46331,7 @@
"xhr2-cookies": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz",
- "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=",
+ "integrity": "sha512-hjXUA6q+jl/bd8ADHcVfFsSPIf+tyLIjuO9TwJC9WI6JP2zKcS7C+p56I9kCLLsaCiNT035iYvEUUzdEFj/8+g==",
"requires": {
"cookiejar": "^2.1.1"
}
@@ -37664,7 +46373,7 @@
"yaeti": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz",
- "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc="
+ "integrity": "sha512-MvQa//+KcZCUkBTIC9blM+CU9J2GzuTytsOUwf2lidtvkx/6gnEp1QvJv34t9vdjhFmha/mUiNDbN0D0mJWdug=="
},
"yallist": {
"version": "4.0.0",
@@ -37753,7 +46462,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
"requires": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -37764,22 +46472,19 @@
"camelcase": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
},
"decamelize": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
}
}
},
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
}
}
}
diff --git a/package.json b/package.json
index 24ce413f2..8fd665803 100644
--- a/package.json
+++ b/package.json
@@ -1,13 +1,14 @@
{
"name": "origintrail_node",
- "version": "6.0.0-beta.1.38",
- "description": "OTNode v6 Beta 1",
+ "version": "6.0.0-beta.2.0",
+ "description": "OTNode v6 Beta 2",
"main": "index.js",
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"prepare": "husky install",
"lint-staged": "lint-staged",
+ "create-account-mapping-signature": "node tools/ot-parachain-account-mapping/create-account-mapping-signature.js ",
"test:bdd": "cucumber-js --fail-fast --format progress --format-options '{\"colorsEnabled\": true}' test/bdd/ -r test/bdd/steps/",
"test:unit": "nyc --all mocha --exit $(find test/unit -name '*.js')",
"test:bdd:release": "cucumber-js --tags=@release --fail-fast --format progress --format-options '{\"colorsEnabled\": true}' test/bdd/ -r test/bdd/steps/",
@@ -52,19 +53,32 @@
"openzeppelin-solidity": "3.4.2",
"prettier": "^2.6.2",
"request": "^2.88.2",
+ "sinon": "^14.0.0",
"slugify": "^1.6.5",
- "solc": "0.7.6"
+ "solc": "0.7.6",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/wallet": "^5.6.2",
+ "@polkadot/util": "^10.1.4",
+ "@polkadot/util-crypto": "^10.1.4"
},
"dependencies": {
"@comunica/query-sparql": "^2.2.1",
+ "@polkadot/api": "^9.2.1",
+ "@polkadot/keyring": "^10.1.4",
"app-root-path": "^3.0.0",
+ "assertion-tools": "^1.0.7",
+ "async": "^3.2.4",
+ "async-mutex": "^0.3.2",
"awilix": "^5.0.1",
"axios": "^0.24.0",
"big-number": "^2.0.0",
"bl": "^5.0.0",
- "bn": "^1.0.5",
+ "bn.js": "^5.2.1",
+ "cors": "^2.8.5",
"crypto-js": "^4.1.1",
"deep-extend": "^0.6.0",
+ "dkg-evm-module": "^1.0.1",
"dotenv": "^10.0.0",
"elliptic": "^6.5.4",
"express": "^4.17.1",
@@ -75,22 +89,29 @@
"fast-sort": "^3.1.1",
"fastq": "^1.13.0",
"fs-extra": "^10.0.0",
- "graphdb": "^2.0.0",
+ "graphdb": "^2.0.2",
+ "ip": "^1.1.8",
"it-concat": "^2.0.0",
"it-length-prefixed": "^5.0.3",
+ "it-map": "^1.0.6",
"it-pipe": "^1.1.0",
"js-sha3": "^0.8.0",
"json-2-csv": "^3.14.4",
"json-stable-stringify": "^1.0.1",
"jsonld": "^5.2.0",
+ "jsonschema": "^1.4.1",
+ "jsonwebtoken": "^8.5.1",
+ "keccak256": "^1.0.6",
"libp2p": "^0.32.4",
"libp2p-bootstrap": "^0.13.0",
"libp2p-kad-dht": "^0.24.2",
- "libp2p-mplex": "^0.10.4",
+ "libp2p-mplex": "^0.10.7",
"libp2p-noise": "^4.0.0",
"libp2p-record": "^0.10.5",
"libp2p-tcp": "^0.17.2",
"merkle-tools": "^1.4.1",
+ "merkletreejs": "^0.2.32",
+ "ms": "^2.1.3",
"multiformats": "^9.4.7",
"mysql2": "^2.3.3",
"n3": "^1.12.2",
@@ -107,10 +128,10 @@
"sequelize": "^6.9.0",
"sequelize-cli": "^6.3.0",
"simple-git": "^3.6.0",
- "sleep-async": "^1.0.5",
"split": "^1.0.1",
"streaming-iterables": "^6.0.0",
"toobusy-js": "^0.5.1",
+ "uint8arrays": "^3.0.0",
"underscore": "^1.13.1",
"unzipper": "^0.10.11",
"uuid": "^8.3.2",
diff --git a/modules/command/command-executor.js b/src/commands/command-executor.js
similarity index 66%
rename from modules/command/command-executor.js
rename to src/commands/command-executor.js
index 3a396e683..62d723e17 100644
--- a/modules/command/command-executor.js
+++ b/src/commands/command-executor.js
@@ -1,10 +1,9 @@
const async = require('async');
-const sleep = require('sleep-async')().Promise;
+const { setTimeout: sleep } = require('timers/promises');
const { forEach } = require('p-iteration');
-const Models = require('../../models');
const Command = require('./command');
-const constants = require('../constants');
+const constants = require('../constants/constants');
/**
* Command statuses
@@ -23,7 +22,7 @@ const STATUS = {
* How many commands will run in parallel
* @type {number}
*/
-const QUEUE_PARALLELISM = 4;
+const QUEUE_PARALLELISM = 100;
/**
* Queues and processes commands
@@ -33,27 +32,30 @@ class CommandExecutor {
this.ctx = ctx;
this.logger = ctx.logger;
this.commandResolver = ctx.commandResolver;
+ this.config = ctx.config;
this.started = false;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
this.parallelism = QUEUE_PARALLELISM;
- this.verboseLoggingEnabled = ctx.config.commandExecutorVerboseLoggingEnabled;
+ this.verboseLoggingEnabled = this.config.commandExecutorVerboseLoggingEnabled;
const that = this;
this.queue = async.queue(async (command, callback) => {
try {
while (!that.started) {
if (that.verboseLoggingEnabled) {
- that.logger.trace('Command executor has not been started yet. Hibernating...');
+ that.logger.trace(
+ 'Command executor has not been started yet. Hibernating...',
+ );
}
- await sleep.sleep(1000);
+ // eslint-disable-next-line no-await-in-loop
+ await sleep(1000);
}
await this._execute(command);
} catch (e) {
- this.logger.error({
- msg: `Something went really wrong! OT-node shutting down... ${e}`,
- Event_name: constants.ERROR_TYPE.COMMAND_EXECUTOR_ERROR,
- });
+ this.logger.error(`Something went really wrong! OT-node shutting down... ${e}`);
process.exit(1);
}
@@ -66,9 +68,8 @@ class CommandExecutor {
* @returns {Promise}
*/
async init() {
- await forEach(
- constants.PERMANENT_COMMANDS,
- async (command) => this._startDefaultCommand(command),
+ await forEach(constants.PERMANENT_COMMANDS, async (command) =>
+ this._startDefaultCommand(command),
);
if (this.verboseLoggingEnabled) {
this.logger.trace('Command executor has been initialized...');
@@ -90,9 +91,10 @@ class CommandExecutor {
* Executes commands
* @param command Command
*/
- async _execute(command) {
+ async _execute(executeCommand) {
+ const command = executeCommand;
const now = new Date().getTime() / 1000;
- await CommandExecutor._update(command, {
+ await this._update(command, {
started_at: now,
});
@@ -103,7 +105,7 @@ class CommandExecutor {
const handler = this.commandResolver.resolve(command.name);
if (command.deadline_at && now > command.deadline_at) {
this.logger.warn(`Command ${command.name} and ID ${command.id} is too late...`);
- await CommandExecutor._update(command, {
+ await this._update(command, {
status: STATUS.expired,
});
try {
@@ -112,37 +114,50 @@ class CommandExecutor {
result.commands.forEach((c) => this.add(c, c.delay, true));
}
} catch (e) {
- this.logger.warn(`Failed to handle expired callback for command ${command.name} and ID ${command.id}`);
+ this.logger.warn(
+ `Failed to handle expired callback for command ${command.name} and ID ${command.id}`,
+ );
}
return;
}
- const waitMs = (command.ready_at + command.delay) - now;
+ const waitMs = command.ready_at + command.delay - now;
if (waitMs > 0) {
if (this.verboseLoggingEnabled) {
- this.logger.trace(`Command ${command.name} with ID ${command.id} should be delayed`);
+ this.logger.trace(
+ `Command ${command.name} with ID ${command.id} should be delayed`,
+ );
}
await this.add(command, Math.min(waitMs, constants.MAX_COMMAND_DELAY_IN_MILLS), false);
return;
}
try {
- const result = await this._process(async (transaction) => {
- await CommandExecutor._update(command, {
- status: STATUS.started,
- }, transaction);
+ const processResult = await this._process(async (transaction) => {
+ await this._update(
+ command,
+ {
+ status: STATUS.started,
+ },
+ transaction,
+ );
command.data = handler.unpack(command.data);
let result = await handler.execute(command, transaction);
if (result.repeat) {
- await CommandExecutor._update(command, {
- status: STATUS.repeating,
- }, transaction);
+ await this._update(
+ command,
+ {
+ status: STATUS.repeating,
+ },
+ transaction,
+ );
command.data = handler.pack(command.data);
const period = command.period
- ? command.period : constants.DEFAULT_COMMAND_REPEAT_INTERVAL_IN_MILLS;
+ ? command.period
+ : constants.DEFAULT_COMMAND_REPEAT_INTERVAL_IN_MILLS;
await this.add(command, period, false);
return Command.repeat();
}
@@ -155,37 +170,50 @@ class CommandExecutor {
}
const children = result.commands.map((c) => {
- c.parent_id = command.id;
- return c;
+ const newCommand = c;
+ newCommand.parent_id = command.id;
+ return newCommand;
});
await Promise.all(children.map((e) => this._insert(e, transaction)));
- await CommandExecutor._update(command, {
- status: STATUS.completed,
- }, transaction);
+ await this._update(
+ command,
+ {
+ status: STATUS.completed,
+ },
+ transaction,
+ );
return {
children,
};
}, command.transactional);
- if (!result.repeat && !result.retry) {
+ if (!processResult.repeat && !processResult.retry) {
if (this.verboseLoggingEnabled) {
this.logger.trace(`Command ${command.name} and ID ${command.id} processed.`);
}
- result.children.forEach(async (e) => this.add(e, e.delay, false));
+ const addPromises = [];
+ processResult.children.forEach((e) =>
+ addPromises.push(this.add(e, e.delay, false)),
+ );
+ await Promise.all(addPromises);
}
} catch (e) {
- this.logger.error({
- msg: `Failed to process command ${command.name} and ID ${command.id}. ${e}.\n${e.stack}`,
- Event_name: constants.ERROR_TYPE.COMMAND_FAILED_ERROR,
- });
+ if (this.verboseLoggingEnabled) {
+ this.logger.trace(
+ `Failed to process command ${command.name} and ID ${command.id}. ${e}.\n${e.stack}`,
+ );
+ }
+
try {
const result = await this._handleError(command, handler, e);
if (result && result.commands) {
result.commands.forEach((c) => this.add(c, c.delay, true));
}
- } catch (e) {
- this.logger.warn(`Failed to handle error callback for command ${command.name} and ID ${command.id}`);
+ } catch (error) {
+ this.logger.warn(
+ `Failed to handle error callback for command ${command.name} and ID ${command.id}, error: ${error.message}`,
+ );
}
}
}
@@ -199,7 +227,7 @@ class CommandExecutor {
*/
async _process(execFn, transactional) {
if (transactional) {
- return Models.sequelize.transaction(async (t) => execFn(t));
+ return this.repositoryModuleManager.transaction(execFn);
}
return execFn(null);
}
@@ -211,7 +239,7 @@ class CommandExecutor {
* @private
*/
async _startDefaultCommand(name) {
- await CommandExecutor._delete(name);
+ await this._delete(name);
const handler = this.commandResolver.resolve(name);
await this.add(handler.default(), constants.DEFAULT_COMMAND_DELAY_IN_MILLS, true);
if (this.verboseLoggingEnabled) {
@@ -225,7 +253,9 @@ class CommandExecutor {
* @param delay
* @param insert
*/
- async add(command, delay = 0, insert = true) {
+ async add(addCommand, addDelay = 0, insert = true) {
+ let command = addCommand;
+ let delay = addDelay;
const now = new Date().getTime() / 1000;
if (delay != null && delay > constants.MAX_COMMAND_DELAY_IN_MILLS) {
@@ -240,7 +270,13 @@ class CommandExecutor {
command = await this._insert(command);
}
if (delay) {
- setTimeout((command) => this.queue.push(command), delay, command);
+ setTimeout(
+ (timeoutCommand) => {
+ this.queue.push(timeoutCommand);
+ },
+ delay,
+ command,
+ );
} else {
this.queue.push(command);
}
@@ -250,19 +286,22 @@ class CommandExecutor {
* Handles command retry
* @param command
* @param handler
- * @return {Promise}
* @private
*/
- async _handleRetry(command, handler) {
- if (command.retries > 0) {
+ async _handleRetry(retryCommand, handler) {
+ const command = retryCommand;
+ if (command.retries > 1) {
command.data = handler.pack(command.data);
- await CommandExecutor._update(command, {
+ await this._update(command, {
status: STATUS.pending,
retries: command.retries - 1,
});
- await this.add(command, command.delay ? command.delay : 0, false);
+ const period = command.period ? command.period : 0;
+ const delay = command.delay ? command.delay : 0;
+ await this.add(command, period + delay, false);
return Command.retry();
}
+ await handler.retryFinished(command);
return Command.empty();
}
@@ -276,16 +315,17 @@ class CommandExecutor {
*/
async _handleError(command, handler, err) {
if (command.retries > 0) {
- await CommandExecutor._update(command, {
+ await this._update(command, {
retries: command.retries - 1,
});
await this.add(command, command.delay ? command.delay : 0, false);
} else {
try {
- await CommandExecutor._update(command, {
+ await this._update(command, {
status: STATUS.failed,
message: err.message,
});
+ this.logger.warn(`Error in command: ${command.name}, error: ${err.message}`);
return await handler.recover(command, err);
} catch (e) {
this.logger.warn(`Failed to recover command ${command.name} and ID ${command.id}`);
@@ -300,7 +340,8 @@ class CommandExecutor {
* @return {Promise}
* @private
*/
- async _insert(command, transaction) {
+ async _insert(insertCommand, transaction = null) {
+ const command = insertCommand;
if (!command.name) {
[command.name] = command.sequence;
command.sequence = command.sequence.slice(1);
@@ -319,12 +360,11 @@ class CommandExecutor {
command.data = commandInstance.pack(command.data);
}
command.status = STATUS.pending;
- const opts = {
- };
+ const opts = {};
if (transaction != null) {
opts.transaction = transaction;
}
- const model = await Models.commands.create(command, opts);
+ const model = await this.repositoryModuleManager.createCommand(command, opts);
command.id = model.dataValues.id;
return command;
}
@@ -335,12 +375,8 @@ class CommandExecutor {
* @returns {Promise}
* @private
*/
- static async _delete(name) {
- await Models.commands.destroy({
- where: {
- name: { [Models.Sequelize.Op.eq]: name },
- },
- });
+ async _delete(name) {
+ await this.repositoryModuleManager.destroyCommand(name);
}
/**
@@ -351,7 +387,7 @@ class CommandExecutor {
* @return {Promise}
* @private
*/
- static async _update(command, update, transaction) {
+ async _update(command, update, transaction = null) {
Object.assign(command, update);
const opts = {
returning: true,
@@ -362,10 +398,7 @@ class CommandExecutor {
if (transaction) {
opts.transaction = transaction;
}
- await Models.commands.update(
- update,
- opts,
- );
+ await this.repositoryModuleManager.updateCommand(update, opts);
}
/**
@@ -374,31 +407,22 @@ class CommandExecutor {
*/
async replay() {
// Wait for 1 minute for node to establish connections
- await new Promise((resolve) => setTimeout(resolve, 1 * 60 * 1000));
+ // await new Promise((resolve) => setTimeout(resolve, 1 * 60 * 1000));
this.logger.info('Replay pending/started commands from the database...');
- const pendingCommands = (await Models.commands.findAll({
- where: {
- status: {
- [Models.Sequelize.Op.in]: [
- STATUS.pending,
- STATUS.started,
- STATUS.repeating],
- },
- name: { [Models.Sequelize.Op.notIn]: ['cleanerCommand', 'autoupdaterCommand'] },
- },
- })).filter((command) => !constants.PERMANENT_COMMANDS.includes(command.name));
+ const pendingCommands = (
+ await this.repositoryModuleManager.getCommandsWithStatus(
+ [STATUS.pending, STATUS.started, STATUS.repeating],
+ ['cleanerCommand', 'autoupdaterCommand'],
+ )
+ ).filter((command) => !constants.PERMANENT_COMMANDS.includes(command.name));
// TODO consider JOIN instead
const commands = pendingCommands.filter(async (pc) => {
if (!pc.parent_id) {
return true;
}
- const parent = await Models.commands.findOne({
- where: {
- id: pc.parent_id,
- },
- });
+ const parent = await this.repositoryModuleManager.getCommandWithId(pc.parent_id);
return !parent || parent.status === 'COMPLETED';
});
diff --git a/modules/command/command-resolver.js b/src/commands/command-resolver.js
similarity index 100%
rename from modules/command/command-resolver.js
rename to src/commands/command-resolver.js
diff --git a/modules/command/command.js b/src/commands/command.js
similarity index 75%
rename from modules/command/command.js
rename to src/commands/command.js
index 116b64e35..ea538aac5 100644
--- a/modules/command/command.js
+++ b/src/commands/command.js
@@ -1,19 +1,20 @@
-const Models = require('../../models/index');
+const { OPERATION_ID_STATUS } = require('../constants/constants');
/**
* Describes one command handler
*/
class Command {
constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
this.commandResolver = ctx.commandResolver;
+ this.operationIdService = ctx.operationIdService;
}
/**
* Executes command and produces one or more events
- * @param command - Command object
- * @param [transaction] - Optional database transaction
*/
- async execute(command, transaction) {
+ async execute() {
return Command.empty();
}
@@ -23,14 +24,16 @@ class Command {
* @param err
*/
async recover(command, err) {
+ const { operationId } = command.data;
+ await this.handleError(operationId, err.message, this.errorType, true, command.data);
+
return Command.empty();
}
/**
* Execute strategy when event is too late
- * @param command
*/
- async expired(command) {
+ async expired() {
return Command.empty();
}
@@ -61,7 +64,7 @@ class Command {
return Command.empty();
}
const [name] = sequence;
- sequence = sequence.slice(1);
+ const newSequence = sequence.slice(1);
const handler = this.commandResolver.resolve(name);
const command = handler.default();
@@ -69,7 +72,7 @@ class Command {
const commandData = command.data ? command.data : {};
Object.assign(command, {
data: Object.assign(commandData, data),
- sequence,
+ sequence: newSequence,
});
if (opts) {
Object.assign(command, opts);
@@ -100,44 +103,36 @@ class Command {
return command;
}
+ async retryFinished(command) {
+ this.logger.trace(`Retry count for command: ${command.name} reached!`);
+ }
+
/**
* Error handler for command
- * @param handlerId - Operation handler id
+ * @param operationId - Operation operation id
* @param error - Error object
* @param errorName - Name of error
* @param markFailed - Update operation status to failed
* @returns {*}
*/
- async handleError(handlerId, error, errorName, markFailed) {
- this.logger.error({
- msg: `Command error (${errorName}): ${error.message}`,
- Event_name: errorName,
- Event_value1: error.message,
- Id_operation: handlerId,
- });
+ async handleError(operationId, errorMessage, errorName, markFailed) {
+ this.logger.error(`Command error (${errorName}): ${errorMessage}`);
if (markFailed) {
- await Models.handler_ids.update(
- {
- data: JSON.stringify({ message: error.message }),
- status: 'FAILED',
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ errorMessage,
+ errorName,
);
}
}
/**
* Builds default command
- * @param map
* @returns {{add, data: *, delay: *, deadline: *}}
*/
- default(map) {
- return {
- };
+ default() {
+ return {};
}
/**
diff --git a/modules/command/common/otnode-update-command.js b/src/commands/common/otnode-update-command.js
similarity index 84%
rename from modules/command/common/otnode-update-command.js
rename to src/commands/common/otnode-update-command.js
index 423131db4..3640d57b1 100644
--- a/modules/command/common/otnode-update-command.js
+++ b/src/commands/common/otnode-update-command.js
@@ -1,7 +1,5 @@
const semver = require('semver');
-const fs = require('fs-extra');
const Command = require('../command');
-const constants = require('../../constants');
class OtnodeUpdateCommand extends Command {
constructor(ctx) {
@@ -40,8 +38,12 @@ class OtnodeUpdateCommand extends Command {
const success = await this.autoUpdaterModuleManager.update();
if (success) {
- const updateFilePath = this.fileService.getUpdateFilePath();
- await fs.promises.writeFile(updateFilePath, 'UPDATED');
+ const updateFolderPath = this.fileService.getDataFolderPath();
+ await this.fileService.writeContentsToFile(
+ updateFolderPath,
+ 'UPDATED',
+ 'UPDATED',
+ );
this.logger.info('Node will now restart!');
process.exit(1);
}
@@ -58,15 +60,11 @@ class OtnodeUpdateCommand extends Command {
async recover(command, err) {
await this.handleError(err);
- return Command.retry();
+ return Command.repeat();
}
async handleError(error) {
- this.logger.error({
- msg: `Error in update command: ${error}. ${error.stack}`,
- Event_name: constants.ERROR_TYPE.CHECKING_UPDATE_ERROR,
- Event_value1: error.message,
- });
+ this.logger.error(`Error in update command: ${error}. ${error.stack}`);
}
/**
diff --git a/src/commands/common/send-telemetry-command.js b/src/commands/common/send-telemetry-command.js
new file mode 100644
index 000000000..2b4fd4ecf
--- /dev/null
+++ b/src/commands/common/send-telemetry-command.js
@@ -0,0 +1,80 @@
+const axios = require('axios');
+const Command = require('../command');
+const pjson = require('../../../package.json');
+
+class SendTelemetryCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.telemetryInjectionService = ctx.telemetryInjectionService;
+ this.networkModuleManager = ctx.networkModuleManager;
+ }
+
+ /**
+ * Performs code update by fetching new code from github repo
+ * @param command
+ */
+ async execute() {
+ if (!this.config.telemetry.enabled || !this.config.telemetry.sendTelemetryData) {
+ return Command.empty();
+ }
+ try {
+ const events = await this.telemetryInjectionService.getUnpublishedEvents();
+ if (events && events.length > 0) {
+ const signalingMessage = {
+ nodeData: {
+ version: pjson.version,
+ identity: this.networkModuleManager.getPeerId()._idB58String,
+ hostname: this.config.hostname,
+ },
+ events,
+ };
+ const config = {
+ method: 'post',
+ url: this.config.telemetry.signalingServerUrl,
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ data: JSON.stringify(signalingMessage),
+ };
+ const response = await axios(config);
+ if (response.status === 200) {
+ await this.telemetryInjectionService.removePublishedEvents(events);
+ }
+ }
+ } catch (e) {
+ await this.handleError(e);
+ }
+ return Command.repeat();
+ }
+
+ async recover(command, err) {
+ await this.handleError(err);
+
+ return Command.repeat();
+ }
+
+ async handleError(error) {
+ this.logger.error(`Error in send telemetry command: ${error}. ${error.stack}`);
+ }
+
+ /**
+ * Builds default otnodeUpdateCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'sendTelemetryCommand',
+ delay: 0,
+ data: {},
+ period: 15 * 60 * 1000,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = SendTelemetryCommand;
diff --git a/src/commands/protocols/common/find-nodes-command.js b/src/commands/protocols/common/find-nodes-command.js
new file mode 100644
index 000000000..ff735040a
--- /dev/null
+++ b/src/commands/protocols/common/find-nodes-command.js
@@ -0,0 +1,73 @@
+const Command = require('../../command');
+const { OPERATION_ID_STATUS, NETWORK_PROTOCOLS } = require('../../../constants/constants');
+
+class FindNodesCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.networkModuleManager = ctx.networkModuleManager;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { keyword, operationId, networkProtocol, errorType } = command.data;
+
+ this.errorType = errorType;
+ this.logger.debug(`Searching for closest node(s) for keyword ${keyword}`);
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FIND_NODES_START,
+ );
+
+ const closestNodes = await this.networkModuleManager.findNodes(keyword, networkProtocol);
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FIND_NODES_END,
+ );
+
+ this.logger.debug(`Found ${closestNodes.length} node(s) for keyword ${keyword}`);
+
+ if (
+ networkProtocol === NETWORK_PROTOCOLS.PUBLISH &&
+ closestNodes.length < this.config.minimumReplicationFactor
+ ) {
+ this.handleError(
+ operationId,
+ `Unable to find enough nodes for ${networkProtocol}. Minimum replication factor: ${this.config.minimumReplicationFactor}`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+
+ return this.continueSequence(
+ {
+ ...command.data,
+ leftoverNodes: closestNodes,
+ numberOfFoundNodes: closestNodes.length,
+ },
+ command.sequence,
+ );
+ }
+
+ /**
+ * Builds default findNodesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'findNodesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = FindNodesCommand;
diff --git a/src/commands/protocols/common/handle-protocol-message-command.js b/src/commands/protocols/common/handle-protocol-message-command.js
new file mode 100644
index 000000000..61fd71db2
--- /dev/null
+++ b/src/commands/protocols/common/handle-protocol-message-command.js
@@ -0,0 +1,57 @@
+const Command = require('../../command');
+
+const { NETWORK_MESSAGE_TYPES } = require('../../../constants/constants');
+
+class HandleProtocolMessageCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.config = ctx.config;
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.operationIdService = ctx.operationIdService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { remotePeerId, operationId, keywordUuid } = command.data;
+
+ try {
+ const { messageType, messageData } = await this.prepareMessage(command.data);
+ await this.networkModuleManager.sendMessageResponse(
+ this.operationService.getNetworkProtocol(),
+ remotePeerId,
+ messageType,
+ operationId,
+ keywordUuid,
+ messageData,
+ );
+ } catch (error) {
+ if (command.retries) return Command.retry();
+ await this.handleError(error.message, command);
+ }
+
+ return Command.empty();
+ }
+
+ async prepareMessage() {
+ // overridden by subclasses
+ }
+
+ async handleError(errorMessage, command) {
+ const { operationId, remotePeerId, keywordUuid } = command.data;
+
+ await super.handleError(operationId, errorMessage, this.errorType, true);
+ await this.networkModuleManager.sendMessageResponse(
+ this.operationService.getNetworkProtocol(),
+ remotePeerId,
+ NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ operationId,
+ keywordUuid,
+ {},
+ );
+ }
+}
+
+module.exports = HandleProtocolMessageCommand;
diff --git a/src/commands/protocols/common/network-protocol-command.js b/src/commands/protocols/common/network-protocol-command.js
new file mode 100644
index 000000000..3762ed97b
--- /dev/null
+++ b/src/commands/protocols/common/network-protocol-command.js
@@ -0,0 +1,70 @@
+const Command = require('../../command');
+
+class NetworkProtocolCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationService = ctx.publishService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId } = command.data;
+ const keywords = this.getKeywords(command);
+ const commandSequence = [
+ 'findNodesCommand',
+ `${this.operationService.getOperationName()}ScheduleMessagesCommand`,
+ ];
+
+ const addCommandPromises = keywords.map((keyword) =>
+ this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: {
+ ...this.getNextCommandData(command),
+ keyword,
+ operationId,
+ errorType: this.errorType,
+ networkProtocol: this.operationService.getNetworkProtocol(),
+ },
+ transactional: false,
+ }),
+ );
+
+ await Promise.all(addCommandPromises);
+
+ return Command.empty();
+ }
+
+ getKeywords() {
+ // overridden by subclasses
+ return [];
+ }
+
+ getNextCommandData() {
+ // overridden by subclasses
+ }
+
+ /**
+ * Builds default protocolNetworkCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'protocolNetworkCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = NetworkProtocolCommand;
diff --git a/src/commands/protocols/common/protocol-init-command.js b/src/commands/protocols/common/protocol-init-command.js
new file mode 100644
index 000000000..521beadad
--- /dev/null
+++ b/src/commands/protocols/common/protocol-init-command.js
@@ -0,0 +1,13 @@
+const ProtocolMessageCommand = require('./protocol-message-command');
+const { NETWORK_MESSAGE_TYPES } = require('../../../constants/constants');
+
+class ProtocolInitCommand extends ProtocolMessageCommand {
+ async execute(command) {
+ return this.executeProtocolMessageCommand(
+ command,
+ NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT,
+ );
+ }
+}
+
+module.exports = ProtocolInitCommand;
diff --git a/src/commands/protocols/common/protocol-message-command.js b/src/commands/protocols/common/protocol-message-command.js
new file mode 100644
index 000000000..c461cccf3
--- /dev/null
+++ b/src/commands/protocols/common/protocol-message-command.js
@@ -0,0 +1,109 @@
+const Command = require('../../command');
+const { NETWORK_MESSAGE_TYPES } = require('../../../constants/constants');
+
+class ProtocolMessageCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ }
+
+ async executeProtocolMessageCommand(command, messageType) {
+ if (!(await this.shouldSendMessage(command))) {
+ return Command.empty();
+ }
+ const message = await this.prepareMessage(command);
+
+ return this.sendProtocolMessage(command, message, messageType);
+ }
+
+ async shouldSendMessage(command) {
+ const { operationId } = command.data;
+
+ const operation = await this.repositoryModuleManager.getOperationStatus(
+ this.operationService.getOperationName(),
+ operationId,
+ );
+
+ if (operation.status === this.operationService.getOperationStatus().IN_PROGRESS) {
+ return true;
+ }
+ this.logger.trace(
+ `${command.name} skipped for operationId: ${operationId} with status ${operation.status}`,
+ );
+
+ return false;
+ }
+
+ // eslint-disable-next-line no-unused-vars
+ async prepareMessage(command) {
+ // overridden by store-init-command, get-init-command, search-init-command,
+ // store-request-command, get-request-command, search-request-command
+ }
+
+ async sendProtocolMessage(command, message, messageType) {
+ const { node, operationId, keyword } = command.data;
+
+ const response = await this.networkModuleManager.sendMessage(
+ this.operationService.getNetworkProtocol(),
+ node,
+ messageType,
+ operationId,
+ keyword,
+ message,
+ );
+ switch (response.header.messageType) {
+ case NETWORK_MESSAGE_TYPES.RESPONSES.BUSY:
+ return this.handleBusy(command, response.data);
+ case NETWORK_MESSAGE_TYPES.RESPONSES.NACK:
+ return this.handleNack(command, response.data);
+ case NETWORK_MESSAGE_TYPES.RESPONSES.ACK:
+ return this.handleAck(command, response.data);
+ default:
+ await this.markResponseAsFailed(
+ command,
+ `Received unknown message type from node during ${command.name}`,
+ );
+ return Command.empty();
+ }
+ }
+
+ async handleAck(command) {
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ async handleBusy() {
+ return Command.retry();
+ }
+
+ async handleNack(command) {
+ await this.markResponseAsFailed(
+ command,
+ `Received NACK response from node during ${command.name}`,
+ );
+ return Command.empty();
+ }
+
+ async recover(command, err) {
+ await this.markResponseAsFailed(command, err.message);
+ return Command.empty();
+ }
+
+ async markResponseAsFailed(command, errorMessage) {
+ await this.operationService.processResponse(
+ command,
+ this.operationService.getOperationRequestStatus().FAILED,
+ null,
+ errorMessage,
+ );
+ }
+
+ async retryFinished(command) {
+ await this.markResponseAsFailed(
+ command,
+ `Max number of retries for protocol message ${command.name} reached`,
+ );
+ }
+}
+
+module.exports = ProtocolMessageCommand;
diff --git a/src/commands/protocols/common/protocol-request-command.js b/src/commands/protocols/common/protocol-request-command.js
new file mode 100644
index 000000000..2dc23c4a9
--- /dev/null
+++ b/src/commands/protocols/common/protocol-request-command.js
@@ -0,0 +1,23 @@
+const Command = require('../../command');
+const ProtocolMessageCommand = require('./protocol-message-command');
+const { NETWORK_MESSAGE_TYPES } = require('../../../constants/constants');
+
+class ProtocolRequestCommand extends ProtocolMessageCommand {
+ async execute(command) {
+ return this.executeProtocolMessageCommand(
+ command,
+ NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST,
+ );
+ }
+
+ async handleAck(command, responseData) {
+ await this.operationService.processResponse(
+ command,
+ this.operationService.getOperationRequestStatus().COMPLETED,
+ responseData,
+ );
+ return Command.empty();
+ }
+}
+
+module.exports = ProtocolRequestCommand;
diff --git a/src/commands/protocols/common/protocol-schedule-messages-command.js b/src/commands/protocols/common/protocol-schedule-messages-command.js
new file mode 100644
index 000000000..112c1458b
--- /dev/null
+++ b/src/commands/protocols/common/protocol-schedule-messages-command.js
@@ -0,0 +1,78 @@
+const Command = require('../../command');
+
+class ProtocolScheduleMessagesCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, keyword, leftoverNodes, numberOfFoundNodes } = command.data;
+
+ const currentBatchNodes = leftoverNodes.slice(0, this.config.minimumReplicationFactor);
+ const currentBatchLeftoverNodes =
+ this.config.minimumReplicationFactor < leftoverNodes.length
+ ? leftoverNodes.slice(this.config.minimumReplicationFactor)
+ : [];
+
+ await this.operationIdService.updateOperationIdStatus(operationId, this.startEvent);
+
+ const commandSequence = [
+ `${this.operationService.getOperationName()}InitCommand`,
+ `${this.operationService.getOperationName()}RequestCommand`,
+ ];
+
+ this.logger.debug(
+ `Trying to ${this.operationService.getOperationName()} to batch of ${
+ currentBatchNodes.length
+ } nodes for keyword : ${keyword}, leftover for retry: ${
+ currentBatchLeftoverNodes.length
+ }`,
+ );
+
+ const addCommandPromises = currentBatchNodes.map((node) =>
+ this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: {
+ ...this.getNextCommandData(command),
+ operationId,
+ keyword,
+ node,
+ numberOfFoundNodes,
+ numberOfNodesInBatch: currentBatchNodes.length,
+ leftoverNodes: currentBatchLeftoverNodes,
+ },
+ period: 5000,
+ retries: 3,
+ transactional: false,
+ }),
+ );
+
+ await Promise.all(addCommandPromises);
+
+ return Command.empty();
+ }
+
+ /**
+ * Builds default protocolScheduleMessagesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'protocolScheduleMessagesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = ProtocolScheduleMessagesCommand;
diff --git a/src/commands/protocols/get/receiver/handle-get-init-command.js b/src/commands/protocols/get/receiver/handle-get-init-command.js
new file mode 100644
index 000000000..fd6c0f85f
--- /dev/null
+++ b/src/commands/protocols/get/receiver/handle-get-init-command.js
@@ -0,0 +1,53 @@
+const HandleProtocolMessageCommand = require('../../common/handle-protocol-message-command');
+const {
+ ERROR_TYPE,
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_ID_STATUS,
+} = require('../../../../constants/constants');
+
+class HandleGetInitCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_INIT_REMOTE_ERROR;
+ }
+
+ async prepareMessage(commandData) {
+ const { assertionId, operationId } = commandData;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.ASSERTION_EXISTS_LOCAL_START,
+ );
+
+ const assertionExists = await this.tripleStoreModuleManager.assertionExists(assertionId);
+ const messageType = assertionExists
+ ? NETWORK_MESSAGE_TYPES.RESPONSES.ACK
+ : NETWORK_MESSAGE_TYPES.RESPONSES.NACK;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.ASSERTION_EXISTS_LOCAL_END,
+ );
+
+ return { messageType, messageData: {} };
+ }
+
+ /**
+ * Builds default handleGetInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleGetInitCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleGetInitCommand;
diff --git a/src/commands/protocols/get/receiver/handle-get-request-command.js b/src/commands/protocols/get/receiver/handle-get-request-command.js
new file mode 100644
index 000000000..b05cc3dca
--- /dev/null
+++ b/src/commands/protocols/get/receiver/handle-get-request-command.js
@@ -0,0 +1,55 @@
+const HandleProtocolMessageCommand = require('../../common/handle-protocol-message-command');
+const {
+ ERROR_TYPE,
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_ID_STATUS,
+} = require('../../../../constants/constants');
+
+class HandleGetRequestCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_REQUEST_REMOTE_ERROR;
+ }
+
+ async prepareMessage(commandData) {
+ const { assertionId, operationId } = commandData;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_REMOTE_START,
+ );
+
+ // TODO: validate assertionId / ual
+
+ const nquads = await this.operationService.localGet(assertionId, operationId);
+
+ const messageType = nquads.length
+ ? NETWORK_MESSAGE_TYPES.RESPONSES.ACK
+ : NETWORK_MESSAGE_TYPES.RESPONSES.NACK;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_REMOTE_END,
+ );
+
+ return { messageType, messageData: { nquads } };
+ }
+
+ /**
+ * Builds default handleGetRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleGetRequestCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.HANDLE_GET_REQUEST_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleGetRequestCommand;
diff --git a/src/commands/protocols/get/sender/get-init-command.js b/src/commands/protocols/get/sender/get-init-command.js
new file mode 100644
index 000000000..0d572ab7b
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-init-command.js
@@ -0,0 +1,36 @@
+const ProtocolInitCommand = require('../../common/protocol-init-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class GetInitCommand extends ProtocolInitCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
+ this.errorType = ERROR_TYPE.GET.GET_INIT_ERROR;
+ }
+
+ async prepareMessage(command) {
+ const { assertionId } = command.data;
+
+ return { assertionId };
+ }
+
+ /**
+ * Builds default getInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getInitCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = GetInitCommand;
diff --git a/src/commands/protocols/get/sender/get-latest-assertion-id-command.js b/src/commands/protocols/get/sender/get-latest-assertion-id-command.js
new file mode 100644
index 000000000..0f223e47d
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-latest-assertion-id-command.js
@@ -0,0 +1,82 @@
+const Command = require('../../../command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class GetLatestAssertionIdCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.ualService = ctx.ualService;
+
+ this.errorType = ERROR_TYPE.GET.GET_ASSERTION_ID_ERROR;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { id, operationId } = command.data;
+
+ // id options :
+ // did:otp:0x174714134abcd13431413413/987654321/41eaa20f35f709d9c22281f46d895b2f7a83c54587e4339456e0d9f4e5bd9b8f
+ // did:otp:0x174714134abcd13431413413/987654321/latest
+ // 41eaa20f35f709d9c22281f46d895b2f7a83c54587e4339456e0d9f4e5bd9b8f
+
+ let assertionId = '';
+ if (!this.ualService.isUAL(id)) {
+ assertionId = id;
+ } else {
+ const {
+ blockchain,
+ contract,
+ tokenId,
+ assertionId: ualAssertionId,
+ } = this.ualService.resolveUAL(id);
+
+ if (ualAssertionId && ualAssertionId !== 'latest') {
+ assertionId = ualAssertionId;
+ } else {
+ this.logger.debug(
+ `Searching for assertion id on ${blockchain} on contract: ${contract} with tokenId: ${tokenId}`,
+ );
+ const blockchainAssertionId =
+ await this.blockchainModuleManager.getLatestCommitHash(
+ blockchain,
+ contract,
+ tokenId,
+ );
+ if (!blockchainAssertionId) {
+ this.handleError(
+ operationId,
+ `Unable to find assertion id on ${blockchain} on contract: ${contract} with tokenId: ${tokenId}`,
+ this.errorType,
+ true,
+ );
+ return Command.empty();
+ }
+ assertionId = blockchainAssertionId;
+ }
+ }
+
+ return this.continueSequence({ ...command.data, assertionId }, command.sequence);
+ }
+
+ /**
+ * Builds default getLatestAssertionIdCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getLatestAssertionIdCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = GetLatestAssertionIdCommand;
diff --git a/src/commands/protocols/get/sender/get-request-command.js b/src/commands/protocols/get/sender/get-request-command.js
new file mode 100644
index 000000000..07bf24006
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-request-command.js
@@ -0,0 +1,35 @@
+const ProtocolRequestCommand = require('../../common/protocol-request-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class GetRequestCommand extends ProtocolRequestCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_REQUEST_ERROR;
+ }
+
+ async prepareMessage(command) {
+ const { assertionId } = command.data;
+
+ return { assertionId };
+ }
+
+ /**
+ * Builds default getRequest
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getRequestCommand',
+ delay: 0,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = GetRequestCommand;
diff --git a/src/commands/protocols/get/sender/get-schedule-messages-command.js b/src/commands/protocols/get/sender/get-schedule-messages-command.js
new file mode 100644
index 000000000..696aa0670
--- /dev/null
+++ b/src/commands/protocols/get/sender/get-schedule-messages-command.js
@@ -0,0 +1,37 @@
+const ProtocolScheduleMessagesCommand = require('../../common/protocol-schedule-messages-command');
+const { OPERATION_ID_STATUS, ERROR_TYPE } = require('../../../../constants/constants');
+
+class GetScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_START_ERROR;
+ this.startEvent = OPERATION_ID_STATUS.GET.GET_FETCH_FROM_NODES_START;
+ }
+
+ getNextCommandData(command) {
+ const { ual, assertionId } = command.data;
+ return {
+ ual,
+ assertionId,
+ };
+ }
+
+ /**
+ * Builds default getScheduleMessagesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'getScheduleMessagesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = GetScheduleMessagesCommand;
diff --git a/src/commands/protocols/get/sender/local-get-command.js b/src/commands/protocols/get/sender/local-get-command.js
new file mode 100644
index 000000000..198b319ec
--- /dev/null
+++ b/src/commands/protocols/get/sender/local-get-command.js
@@ -0,0 +1,72 @@
+const Command = require('../../../command');
+const { OPERATION_ID_STATUS, ERROR_TYPE } = require('../../../../constants/constants');
+
+class LocalGetCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.config = ctx.config;
+ this.operationIdService = ctx.operationIdService;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.getService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_LOCAL_ERROR;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, assertionId } = command.data;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_LOCAL_START,
+ );
+ const assertionExists = await this.tripleStoreModuleManager.assertionExists(assertionId);
+ if (assertionExists) {
+ const nquads = await this.getService.localGet(assertionId, operationId);
+
+ if (nquads.length) {
+ await this.operationIdService.cacheOperationIdData(operationId, nquads);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_LOCAL_END,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_END,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.COMPLETED,
+ );
+
+ return Command.empty();
+ }
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_LOCAL_END,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ /**
+ * Builds default localGetCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'localGetCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = LocalGetCommand;
diff --git a/src/commands/protocols/get/sender/network-get-command.js b/src/commands/protocols/get/sender/network-get-command.js
new file mode 100644
index 000000000..c85f5e059
--- /dev/null
+++ b/src/commands/protocols/get/sender/network-get-command.js
@@ -0,0 +1,40 @@
+const NetworkProtocolCommand = require('../../common/network-protocol-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class NetworkGetCommand extends NetworkProtocolCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.getService;
+
+ this.errorType = ERROR_TYPE.GET.GET_NETWORK_ERROR;
+ }
+
+ getKeywords(command) {
+ const { assertionId } = command.data;
+ return [assertionId];
+ }
+
+ getNextCommandData(command) {
+ const { assertionId } = command.data;
+ return {
+ assertionId,
+ };
+ }
+
+ /**
+ * Builds default networkGetCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'networkGetCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = NetworkGetCommand;
diff --git a/src/commands/protocols/publish/receiver/answer-challenge-command.js b/src/commands/protocols/publish/receiver/answer-challenge-command.js
new file mode 100644
index 000000000..0a69c5063
--- /dev/null
+++ b/src/commands/protocols/publish/receiver/answer-challenge-command.js
@@ -0,0 +1,81 @@
+// const Command = require('../../command');
+// const constants = require('../../../constants/constants');
+//
+// class AnswerChallengeCommand extends Command {
+// constructor(ctx) {
+// super(ctx);
+// this.logger = ctx.logger;
+// this.config = ctx.config;
+// this.networkModuleManager = ctx.networkModuleManager;
+// this.blockchainModuleManager = ctx.blockchainModuleManager;
+// this.validationModuleManager = ctx.validationModuleManager;
+// this.dataService = ctx.dataService;
+// this.publishService = ctx.publishService;
+// this.commandExecutor = ctx.commandExecutor;
+// this.ualService = ctx.ualService;
+// }
+//
+// /**
+// * Executes command and produces one or more events
+// * @param command
+// */
+// async execute(command) {
+// const {
+// handlerId,
+// epoch,
+// blockchain,
+// tokenId
+// } = command.data;
+//
+//
+// // await this.handlerIdService.updateHandlerIdStatus(
+// // handlerId,
+// // HANDLER_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_START,
+// // );
+//
+// try {
+// const {data, metadata} = await this.handlerIdService.getCachedHandlerIdData(handlerId);
+//
+// const challenge = await this.blockchainModuleManager.getChallenge(blockchain, tokenId, epoch);
+//
+// const nquadsArray = data.concat(metadata)
+// const {proof, leaf} = this.validationModuleManager.getMerkleProof(nquadsArray, challenge);
+// await this.blockchainModuleManager.answerChallenge(blockchain, tokenId, epoch, proof, leaf, 0);
+// if (epoch > 0) {
+// await this.blockchainModuleManager.getReward(blockchain, tokenId, epoch);
+// }
+// }catch(e) {
+// console.log(e);
+// }
+//
+// return Command.empty();
+// }
+//
+// async handleError(handlerId, errorMessage, errorName, markFailed, commandData) {
+// await this.publishService.handleReceiverCommandError(
+// handlerId,
+// errorMessage,
+// errorName,
+// markFailed,
+// commandData,
+// );
+// return Command.empty();
+// }
+//
+// /**
+// * Builds default handleStoreRequestCommand
+// * @param map
+// * @returns {{add, data: *, delay: *, deadline: *}}
+// */
+// default(map) {
+// const command = {
+// name: 'answerChallengeCommand',
+// delay: 0,
+// transactional: false,
+// };
+// Object.assign(command, map);
+// return command;
+// }
+// }
+//
+// module.exports = AnswerChallengeCommand;
diff --git a/src/commands/protocols/publish/receiver/handle-store-init-command.js b/src/commands/protocols/publish/receiver/handle-store-init-command.js
new file mode 100644
index 000000000..184511173
--- /dev/null
+++ b/src/commands/protocols/publish/receiver/handle-store-init-command.js
@@ -0,0 +1,63 @@
+const HandleProtocolMessageCommand = require('../../common/handle-protocol-message-command');
+const {
+ NETWORK_MESSAGE_TYPES,
+ ERROR_TYPE,
+ OPERATION_ID_STATUS,
+} = require('../../../../constants/constants');
+
+class HandleStoreInitCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_REMOTE_ERROR;
+ }
+
+ async prepareMessage(commandData) {
+ const { operationId, ual } = commandData;
+
+ this.logger.info(`Validating assertion with ual: ${ual}`);
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_REMOTE_START,
+ );
+
+ const assertionId = await this.operationService.getAssertion(ual, operationId);
+
+ await Promise.all([
+ this.operationIdService.cacheOperationIdData(operationId, { assertionId }),
+ this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_REMOTE_END,
+ ),
+ ]);
+
+ return { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: {} };
+ }
+
+ async retryFinished(command) {
+ const { operationId } = command.data;
+ this.handleError(
+ `Retry count for command: ${command.name} reached! Unable to validate data for operation id: ${operationId}`,
+ command,
+ );
+ }
+
+ /**
+ * Builds default handleStoreInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleStoreInitCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleStoreInitCommand;
diff --git a/src/commands/protocols/publish/receiver/handle-store-request-command.js b/src/commands/protocols/publish/receiver/handle-store-request-command.js
new file mode 100644
index 000000000..8b2f56f46
--- /dev/null
+++ b/src/commands/protocols/publish/receiver/handle-store-request-command.js
@@ -0,0 +1,92 @@
+const HandleProtocolMessageCommand = require('../../common/handle-protocol-message-command');
+const {
+ NETWORK_MESSAGE_TYPES,
+ OPERATION_ID_STATUS,
+ ERROR_TYPE,
+} = require('../../../../constants/constants');
+
+class HandleStoreRequestCommand extends HandleProtocolMessageCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_LOCAL_STORE_REMOTE_ERROR;
+ }
+
+ async prepareMessage(commandData) {
+ const { ual, operationId, assertionId } = commandData;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_START,
+ );
+ const { assertionId: storeInitAssertionId } =
+ await this.operationIdService.getCachedOperationIdData(operationId);
+
+ if (storeInitAssertionId !== assertionId) {
+ throw Error(
+ `Store request assertion id ${assertionId} does not match store init assertion id ${storeInitAssertionId}`,
+ );
+ }
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_REMOTE_START,
+ );
+ await this.operationService.validateAssertion(assertionId, operationId);
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_REMOTE_END,
+ );
+
+ await this.operationService.localStore(ual, assertionId, operationId);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_END,
+ );
+
+ return { messageType: NETWORK_MESSAGE_TYPES.RESPONSES.ACK, messageData: {} };
+
+ // const {blockchain, tokenId} = this.ualService.resolveUAL(ual);
+ // const epochs = await this.blockchainModuleManager.getEpochs(blockchain, tokenId);
+ // const blockNumber = await this.blockchainModuleManager.getBlockNumber(blockchain);
+ // const blockTime = await this.blockchainModuleManager.getBlockTime(blockchain);
+ // const addCommandPromise = [];
+ // epochs.forEach((epoch) => {
+ // const commandSequence = ['answerChallengeCommand'];
+ // addCommandPromise.push(
+ // this.commandExecutor.add({
+ // name: commandSequence[0],
+ // sequence: commandSequence.slice(1),
+ // delay: Math.abs((parseInt(epoch, 10)-parseInt(blockNumber, 10))*parseInt(blockTime, 10)),
+ // data: {
+ // handlerId,
+ // epoch,
+ // tokenId
+ // },
+ // transactional: false,
+ // }),
+ // );
+ // });
+ //
+ // await Promise.all(addCommandPromise);
+ }
+
+ /**
+ * Builds default handleStoreRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleStoreRequestCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleStoreRequestCommand;
diff --git a/src/commands/protocols/publish/sender/insert-assertion-command.js b/src/commands/protocols/publish/sender/insert-assertion-command.js
new file mode 100644
index 000000000..a1acb4701
--- /dev/null
+++ b/src/commands/protocols/publish/sender/insert-assertion-command.js
@@ -0,0 +1,56 @@
+const Command = require('../../../command');
+const { OPERATION_ID_STATUS, ERROR_TYPE } = require('../../../../constants/constants');
+
+class InsertAssertionCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.fileService = ctx.fileService;
+ this.operationIdService = ctx.operationIdService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_LOCAL_STORE_ERROR;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, ual, assertionId } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_START,
+ );
+ try {
+ await this.operationService.localStore(ual, assertionId, operationId);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_LOCAL_STORE_END,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ } catch (error) {
+ this.handleError(operationId, error.message, this.errorType, true);
+ return Command.empty();
+ }
+ }
+
+ /**
+ * Builds default insertAssertionCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'insertAssertionCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = InsertAssertionCommand;
diff --git a/src/commands/protocols/publish/sender/network-publish-command.js b/src/commands/protocols/publish/sender/network-publish-command.js
new file mode 100644
index 000000000..49e01e4df
--- /dev/null
+++ b/src/commands/protocols/publish/sender/network-publish-command.js
@@ -0,0 +1,41 @@
+const NetworkProtocolCommand = require('../../common/network-protocol-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class NetworkPublishCommand extends NetworkProtocolCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR;
+ }
+
+ getKeywords(command) {
+ const { assertionId } = command.data;
+ return [assertionId];
+ }
+
+ getNextCommandData(command) {
+ const { assertionId, ual } = command.data;
+ return {
+ assertionId,
+ ual,
+ };
+ }
+
+ /**
+ * Builds default networkPublishCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'networkPublishCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = NetworkPublishCommand;
diff --git a/src/commands/protocols/publish/sender/publish-init-command.js b/src/commands/protocols/publish/sender/publish-init-command.js
new file mode 100644
index 000000000..1840b8737
--- /dev/null
+++ b/src/commands/protocols/publish/sender/publish-init-command.js
@@ -0,0 +1,38 @@
+const ProtocolInitCommand = require('../../common/protocol-init-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class PublishInitCommand extends ProtocolInitCommand {
+ constructor(ctx) {
+ super(ctx);
+
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.operationService = ctx.publishService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_STORE_INIT_ERROR;
+ }
+
+ async prepareMessage(command) {
+ const { assertionId, ual } = command.data;
+
+ return { assertionId, ual };
+ }
+
+ /**
+ * Builds default publishInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishInitCommand',
+ delay: 0,
+ period: 5000,
+ retries: 3,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = PublishInitCommand;
diff --git a/src/commands/protocols/publish/sender/publish-request-command.js b/src/commands/protocols/publish/sender/publish-request-command.js
new file mode 100644
index 000000000..1ce951146
--- /dev/null
+++ b/src/commands/protocols/publish/sender/publish-request-command.js
@@ -0,0 +1,40 @@
+const ProtocolRequestCommand = require('../../common/protocol-request-command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+
+class PublishRequestCommand extends ProtocolRequestCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_STORE_REQUEST_ERROR;
+ }
+
+ async prepareMessage(command) {
+ const { operationId, assertionId, ual } = command.data;
+ const { assertion } = await this.operationIdService.getCachedOperationIdData(operationId);
+
+ return {
+ assertion,
+ assertionId,
+ ual,
+ };
+ }
+
+ /**
+ * Builds default storeRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishRequestCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = PublishRequestCommand;
diff --git a/src/commands/protocols/publish/sender/publish-schedule-messages-command.js b/src/commands/protocols/publish/sender/publish-schedule-messages-command.js
new file mode 100644
index 000000000..d25c729de
--- /dev/null
+++ b/src/commands/protocols/publish/sender/publish-schedule-messages-command.js
@@ -0,0 +1,38 @@
+const ProtocolScheduleMessagesCommand = require('../../common/protocol-schedule-messages-command');
+const { OPERATION_ID_STATUS, ERROR_TYPE } = require('../../../../constants/constants');
+
+class PublishScheduleMessagesCommand extends ProtocolScheduleMessagesCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+
+ this.startEvent = OPERATION_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_START;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_START_ERROR;
+ }
+
+ getNextCommandData(command) {
+ const { assertionId, ual } = command.data;
+ return {
+ assertionId,
+ ual,
+ };
+ }
+
+ /**
+ * Builds default publishScheduleMessagesCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'publishScheduleMessagesCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = PublishScheduleMessagesCommand;
diff --git a/src/commands/protocols/publish/sender/validate-assertion-command.js b/src/commands/protocols/publish/sender/validate-assertion-command.js
new file mode 100644
index 000000000..7e7df5579
--- /dev/null
+++ b/src/commands/protocols/publish/sender/validate-assertion-command.js
@@ -0,0 +1,69 @@
+const Command = require('../../../command');
+const { ERROR_TYPE, OPERATION_ID_STATUS } = require('../../../../constants/constants');
+
+class ValidateAssertionCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.operationService = ctx.publishService;
+
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_VALIDATE_ASSERTION_ERROR;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { ual, operationId } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_START,
+ );
+ try {
+ const assertionId = await this.operationService.getAssertion(ual, operationId);
+ await this.operationService.validateAssertion(assertionId, operationId);
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.VALIDATING_ASSERTION_END,
+ );
+
+ return this.continueSequence(
+ { ...command.data, assertionId, retry: undefined, period: undefined },
+ command.sequence,
+ );
+ } catch (error) {
+ this.logger.warn(
+ `Unable to validate blockchain data for ual: ${ual}. Received error: ${error.message}, retrying.`,
+ );
+ return Command.retry();
+ }
+ }
+
+ async retryFinished(command) {
+ const { ual, operationId } = command.data;
+ await this.handleError(
+ operationId,
+ `Retry count for command: ${command.name} reached! Unable to validate ual: ${ual}`,
+ this.errorType,
+ true,
+ );
+ }
+
+ /**
+ * Builds default prepareAssertionForPublish
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'validateAssertionCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = ValidateAssertionCommand;
diff --git a/src/commands/protocols/search/receiver/handle-search-assertions-init-command.js b/src/commands/protocols/search/receiver/handle-search-assertions-init-command.js
new file mode 100644
index 000000000..621f78c5b
--- /dev/null
+++ b/src/commands/protocols/search/receiver/handle-search-assertions-init-command.js
@@ -0,0 +1,55 @@
+const Command = require('../../../command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+const constants = require('../../../../constants/constants');
+
+class HandleSearchAssertionsInitCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.commandExecutor = ctx.commandExecutor;
+ this.networkModuleManager = ctx.networkModuleManager;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { remotePeerId, operationId } = command.data;
+
+ const messageType = constants.NETWORK_MESSAGE_TYPES.RESPONSES.ACK;
+ const messageData = {};
+ await this.networkModuleManager.sendMessageResponse(
+ constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
+ remotePeerId,
+ messageType,
+ operationId,
+ messageData,
+ );
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ handleError(operationId, error, msg) {
+ this.logger.error(msg);
+ }
+
+ /**
+ * Builds default handleSearchAssertionsInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleSearchAssertionsInitCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.HANDLE_SEARCH_ASSERTIONS_INIT_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleSearchAssertionsInitCommand;
diff --git a/src/commands/protocols/search/receiver/handle-search-assertions-request-command.js b/src/commands/protocols/search/receiver/handle-search-assertions-request-command.js
new file mode 100644
index 000000000..987bcc8ad
--- /dev/null
+++ b/src/commands/protocols/search/receiver/handle-search-assertions-request-command.js
@@ -0,0 +1,62 @@
+const Command = require('../../../command');
+const { ERROR_TYPE } = require('../../../../constants/constants');
+const constants = require('../../../../constants/constants');
+
+class HandleSearchAssertionsRequestCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { message, remotePeerId, operationId } = command.data;
+
+ const localQuery = true;
+ const data = await this.tripleStoreModuleManager.findAssertionsByKeyword(
+ message.data.query,
+ message.data.options,
+ localQuery,
+ );
+
+ const messageType = constants.NETWORK_MESSAGE_TYPES.RESPONSES.ACK;
+ const messageData = data.map((assertion) => assertion.assertionId);
+ await this.networkModuleManager.sendMessageResponse(
+ constants.NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
+ remotePeerId,
+ messageType,
+ operationId,
+ messageData,
+ );
+
+ return Command.empty();
+ }
+
+ handleError(operationId, error, msg) {
+ this.logger.error(msg);
+ }
+
+ /**
+ * Builds default handleSearchAssertionsRequestCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'handleSearchAssertionsRequestCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.HANDLE_SEARCH_ASSERTIONS_REQUEST_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = HandleSearchAssertionsRequestCommand;
diff --git a/src/commands/protocols/search/sender/local-search-assertions-command.js b/src/commands/protocols/search/sender/local-search-assertions-command.js
new file mode 100644
index 000000000..cc10107c8
--- /dev/null
+++ b/src/commands/protocols/search/sender/local-search-assertions-command.js
@@ -0,0 +1,69 @@
+const Command = require('../../../command');
+const { OPERATION_ID_STATUS } = require('../../../../constants/constants');
+
+class LocalSearchAssertionsCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.operationIdService = ctx.operationIdService;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { operationId, query, options } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.SEARCHING_ASSERTIONS,
+ );
+
+ try {
+ const localQuery = true;
+ const response = await this.tripleStoreModuleManager.findAssertionsByKeyword(
+ query,
+ options,
+ localQuery,
+ );
+
+ const data = {};
+ data.assertions = response.map((assertion) => assertion.assertionId);
+
+ await this.operationIdService.cacheOperationIdData(operationId, data);
+ } catch (e) {
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ e.message,
+ );
+ }
+
+ return this.continueSequence(command.data, command.sequence);
+ }
+
+ handleError(operationId, error, msg) {
+ this.logger.error(msg);
+ }
+
+ /**
+ * Builds default localSearchAssertionsCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'localSearchAssertionsCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = LocalSearchAssertionsCommand;
diff --git a/src/commands/protocols/search/sender/search-assertions-command.js b/src/commands/protocols/search/sender/search-assertions-command.js
new file mode 100644
index 000000000..d7533635d
--- /dev/null
+++ b/src/commands/protocols/search/sender/search-assertions-command.js
@@ -0,0 +1,53 @@
+const Command = require('../../../command');
+
+class SearchAssertionsCommand extends Command {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.commandExecutor = ctx.commandExecutor;
+ }
+
+ /**
+ * Executes command and produces one or more events
+ * @param command
+ */
+ async execute(command) {
+ const { nodes, operationId, query, options } = command.data;
+
+ const commandSequence = ['searchAssertionsInitCommand', 'searchAssertionsRequestCommand'];
+ const addCommandPromise = [];
+ nodes.forEach((node) => {
+ addCommandPromise.push(
+ this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: { operationId, node, query, options },
+ transactional: false,
+ }),
+ );
+ });
+
+ await Promise.any(addCommandPromise);
+
+ // todo schedule timeout command
+ return Command.empty();
+ }
+
+ /**
+ * Builds default searchAssertionsCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'searchAssertionsCommand',
+ delay: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = SearchAssertionsCommand;
diff --git a/src/commands/protocols/search/sender/search-assertions-init-command.js b/src/commands/protocols/search/sender/search-assertions-init-command.js
new file mode 100644
index 000000000..9b8f6447d
--- /dev/null
+++ b/src/commands/protocols/search/sender/search-assertions-init-command.js
@@ -0,0 +1,36 @@
+const ProtocolInitCommand = require('../../common/protocol-init-command');
+const { ERROR_TYPE, NETWORK_PROTOCOLS } = require('../../../../constants/constants');
+
+class SearchAssertionsInitCommand extends ProtocolInitCommand {
+ constructor(ctx) {
+ super(ctx);
+
+ this.errorType = ERROR_TYPE.SEARCH_ASSERTIONS_INIT_ERROR;
+ this.networkProtocol = NETWORK_PROTOCOLS.SEARCH_ASSERTIONS;
+ }
+
+ async prepareMessage(command) {
+ const { query, options } = command.data;
+
+ return { query, options };
+ }
+
+ /**
+ * Builds default searchAssertionsInitCommand
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'searchAssertionsInitCommand',
+ delay: 0,
+ period: 5000,
+ retries: 0,
+ transactional: false,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = SearchAssertionsInitCommand;
diff --git a/src/commands/protocols/search/sender/search-assertions-request-command.js b/src/commands/protocols/search/sender/search-assertions-request-command.js
new file mode 100644
index 000000000..f9a306eb5
--- /dev/null
+++ b/src/commands/protocols/search/sender/search-assertions-request-command.js
@@ -0,0 +1,70 @@
+const ProtocolRequestCommand = require('../../common/protocol-request-command');
+const {
+ ERROR_TYPE,
+ NETWORK_PROTOCOLS,
+ OPERATION_ID_STATUS,
+} = require('../../../../constants/constants');
+const Command = require('../../../command');
+
+class searchAssertionsRequestCommand extends ProtocolRequestCommand {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.operationIdService = ctx.operationIdService;
+ this.searchService = ctx.searchService;
+
+ this.commandName = 'searchAssertionsRequestCommand';
+ this.errorType = ERROR_TYPE.SEARCH_ASSERTIONS_REQUEST_ERROR;
+ this.networkProtocol = NETWORK_PROTOCOLS.SEARCH_ASSERTIONS;
+ }
+
+ async prepareMessage(command) {
+ const { operationId, query, options } = command.data;
+
+ return {
+ options,
+ operationId,
+ query,
+ };
+ }
+
+ async handleAck(command, responseData) {
+ await this.searchService.processSearchResponse(
+ command,
+ responseData,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.COMPLETED,
+ );
+ return Command.empty();
+ }
+
+ async markResponseAsFailed(command, errorMessage) {
+ await this.searchService.processSearchResponse(
+ command,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.FAILED,
+ errorMessage,
+ );
+ }
+
+ handleError(operationId, error, msg) {
+ this.logger.error(msg);
+ }
+
+ /**
+ * Builds default searchAssertionsRequest
+ * @param map
+ * @returns {{add, data: *, delay: *, deadline: *}}
+ */
+ default(map) {
+ const command = {
+ name: 'searchAssertionsRequestCommand',
+ delay: 0,
+ transactional: false,
+ errorType: ERROR_TYPE.SEARCH_ASSERTIONS_REQUEST_ERROR,
+ };
+ Object.assign(command, map);
+ return command;
+ }
+}
+
+module.exports = searchAssertionsRequestCommand;
diff --git a/src/constants/constants.js b/src/constants/constants.js
index e69de29bb..da9439f66 100644
--- a/src/constants/constants.js
+++ b/src/constants/constants.js
@@ -0,0 +1,372 @@
+exports.SCHEMA_CONTEXT = 'http://schema.org/';
+
+/**
+ * @constant {object} PUBLISH_TYPES
+ * - Different types of publish
+ */
+exports.PUBLISH_TYPES = { ASSERTION: 'assertion', ASSET: 'asset', INDEX: 'index' };
+
+/**
+ * @constant {number} MIN_NODE_VERSION
+ * - Required node.js version to run the ot-node
+ */
+exports.MIN_NODE_VERSION = 16;
+
+// TODO retrieve from the blockchain
+/**
+ * @constant {number} INIT_STAKE_AMOUNT
+ * - Initial stake amount for profile creation
+ */
+exports.INIT_STAKE_AMOUNT = 3000;
+
+/**
+ * @constant {object} SERVICE_API_SLOW_DOWN
+ * - Express slow down configuration constants
+ */
+exports.SERVICE_API_SLOW_DOWN = {
+ TIME_WINDOW_MILLS: 1 * 60 * 1000,
+ DELAY_AFTER_SECONDS: 5,
+ DELAY_MILLS: 3 * 1000,
+};
+
+/**
+ * @constant {object} NETWORK_API_RATE_LIMIT
+ * - Network (Libp2p) rate limiter configuration constants
+ */
+exports.NETWORK_API_RATE_LIMIT = {
+ TIME_WINDOW_MILLS: 1 * 60 * 1000,
+ MAX_NUMBER: 20,
+};
+
+/**
+ * @constant {object} NETWORK_API_SPAM_DETECTION
+ * - Network (Libp2p) spam detection rate limiter configuration constants
+ */
+exports.NETWORK_API_SPAM_DETECTION = {
+ TIME_WINDOW_MILLS: 1 * 60 * 1000,
+ MAX_NUMBER: 40,
+};
+
+/**
+ * @constant {object} NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES
+ * - Network (Libp2p) black list time window in minutes
+ */
+exports.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES = 60;
+
+/**
+ * @constant {number} DID_PREFIX
+ * - DID prefix for graph database
+ */
+exports.DID_PREFIX = 'did:dkg';
+
+/**
+ * @constant {number} DEFAULT_COMMAND_CLEANUP_TIME_MILLS - Command cleanup interval time
+ */
+exports.DEFAULT_COMMAND_CLEANUP_TIME_MILLS = 4 * 24 * 60 * 60 * 1000;
+
+/**
+ * @constant {number} REMOVE_SESSION_COMMAND_DELAY - Remove session comand delay
+ */
+exports.REMOVE_SESSION_COMMAND_DELAY = 2 * 60 * 1000;
+
+/**
+ * @constant {number} OPERATION_IDS_COMMAND_CLEANUP_TIME_MILLS -
+ * Export command cleanup interval time 24h
+ */
+exports.OPERATION_IDS_COMMAND_CLEANUP_TIME_MILLS = 24 * 60 * 60 * 1000;
+
+/**
+ * @constant {Array} PERMANENT_COMMANDS - List of all permanent commands
+ */
+exports.PERMANENT_COMMANDS = ['otnodeUpdateCommand', 'sendTelemetryCommand'];
+
+/**
+ * @constant {number} MAX_COMMAND_DELAY_IN_MILLS - Maximum delay for commands
+ */
+exports.MAX_COMMAND_DELAY_IN_MILLS = 14400 * 60 * 1000; // 10 days
+
+/**
+ * @constant {number} DEFAULT_COMMAND_REPEAT_IN_MILLS - Default repeat interval
+ */
+exports.DEFAULT_COMMAND_REPEAT_INTERVAL_IN_MILLS = 5000; // 5 seconds
+
+/**
+ * @constant {number} DEFAULT_COMMAND_DELAY_IN_MILLS - Delay for default commands
+ */
+exports.DEFAULT_COMMAND_DELAY_IN_MILLS = 60 * 1000; // 60 seconds
+
+/**
+ * @constant {number} TRIPLE_STORE_CONNECT_MAX_RETRIES
+ * - Maximum retries for connecting to triple store
+ */
+exports.TRIPLE_STORE_CONNECT_MAX_RETRIES = 10;
+
+/**
+ * @constant {number} TRIPLE_STORE_CONNECT_RETRY_FREQUENCY
+ * - Wait interval between retries for connecting to triple store
+ */
+exports.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY = 10; // 10 seconds
+
+/**
+ * @constant {number} TRIPLE_STORE_QUEUE_LIMIT
+ * - Triple store queue limit
+ */
+exports.TRIPLE_STORE_QUEUE_LIMIT = 5000;
+
+/**
+ * @constant {number} BLOCKCHAIN_QUEUE_LIMIT
+ * - Blockchain queue limit
+ */
+exports.BLOCKCHAIN_QUEUE_LIMIT = 25000;
+
+/**
+ * @constant {number} WEBSOCKET_PROVIDER_OPTIONS
+ * - Websocket provider options
+ */
+module.exports.WEBSOCKET_PROVIDER_OPTIONS = {
+ reconnect: {
+ auto: true,
+ delay: 1000, // ms
+ maxAttempts: 3,
+ },
+ clientConfig: {
+ keepalive: true,
+ keepaliveInterval: 30 * 1000, // ms
+ },
+};
+
+/**
+ * @constant {number} GET_MAX_TIME_MILLIS
+ * - Maximum time for get operation
+ */
+exports.GET_MAX_TIME_MILLIS = 15 * 1000;
+
+/**
+ * @constant {number} STORE_MAX_RETRIES
+ * - Maximum number of retries
+ */
+exports.STORE_MAX_TRIES = 3;
+
+/**
+ * @constant {number} STORE_BUSY_REPEAT_INTERVAL_IN_MILLS
+ * - Wait interval between retries for sending store requests
+ */
+exports.STORE_BUSY_REPEAT_INTERVAL_IN_MILLS = 4 * 1000;
+
+/**
+ * @constant {number} BUSYNESS_LIMITS
+ * - Max number of operations in triple store queue that indicate busyness
+ */
+exports.BUSYNESS_LIMITS = {
+ HANDLE_STORE: 20,
+ HANDLE_GET: 20,
+ HANDLE_SEARCH_ASSERTIONS: 20,
+ HANDLE_SEARCH_ENTITIES: 15,
+};
+
+/**
+ * @constant {number} STORE_MIN_SUCCESS_RATE
+ * - Min rate of successful responses from store queries for publish to be maked as COMPLETED
+ */
+exports.STORE_MIN_SUCCESS_RATE = 0.8;
+
+/**
+ * @constant {object} TRIPLE_STORE_IMPLEMENTATION -
+ * Names of available triple store implementations
+ */
+exports.TRIPLE_STORE_IMPLEMENTATION = {
+ BLAZEGRAPH: 'Blazegraph',
+ GRAPHDB: 'GraphDB',
+ FUSEKI: 'Fuseki',
+};
+
+/**
+ * @constant {number} NETWORK_MESSAGE_TYPES -
+ * Network message types
+ */
+exports.NETWORK_MESSAGE_TYPES = {
+ REQUESTS: {
+ PROTOCOL_INIT: 'PROTOCOL_INIT',
+ PROTOCOL_REQUEST: 'PROTOCOL_REQUEST',
+ },
+ RESPONSES: {
+ ACK: 'ACK',
+ NACK: 'NACK',
+ BUSY: 'BUSY',
+ },
+};
+
+/**
+ * @constant {number} MAX_OPEN_SESSIONS -
+ * Max number of open sessions
+ */
+exports.MAX_OPEN_SESSIONS = 10;
+
+/**
+ * @constant {number} NETWORK_HANDLER_TIMEOUT -
+ * Timeout for all handler methods for network requests
+ */
+exports.NETWORK_HANDLER_TIMEOUT = 120e3;
+
+/**
+ * @constant {object} ERROR_TYPE -
+ * Types of errors supported
+ */
+exports.ERROR_TYPE = {
+ PUBLISH: {
+ PUBLISH_START_ERROR: 'PublishStartError',
+ PUBLISH_ROUTE_ERROR: 'PublishRouteError',
+ PUBLISH_VALIDATE_ASSERTION_ERROR: 'PublishValidateAssertionError',
+ PUBLISH_VALIDATE_ASSERTION_REMOTE_ERROR: 'PublishValidateAssertionRemoteError',
+ PUBLISH_LOCAL_STORE_ERROR: 'PublishLocalStoreError',
+ PUBLISH_LOCAL_STORE_REMOTE_ERROR: 'PublishLocalStoreRemoteError',
+ PUBLISH_FIND_NODES_ERROR: 'PublishFindNodesError',
+ PUBLISH_STORE_INIT_ERROR: 'PublishStoreInitError',
+ PUBLISH_STORE_REQUEST_ERROR: 'PublishStoreRequestError',
+ PUBLISH_ERROR: 'PublishError',
+ PUBLISH_REMOTE_ERROR: 'PublishRemoteError',
+ },
+ GET: {
+ GET_ASSERTION_ID_ERROR: 'GetAssertionIdError',
+ GET_LOCAL_ERROR: 'GetLocalError',
+ GET_NETWORK_ERROR: 'GetNetworkError',
+ GET_START_ERROR: 'GetStartError',
+ GET_INIT_ERROR: 'GetInitError',
+ GET_REQUEST_ERROR: 'GetRequestError',
+ GET_INIT_REMOTE_ERROR: 'GetInitRemoteError',
+ GET_REQUEST_REMOTE_ERROR: 'GetRequestRemoteError',
+ GET_ERROR: 'GetError',
+ },
+};
+/**
+ * @constant {object} OPERATION_ID_STATUS -
+ * Possible statuses for operation id
+ */
+exports.OPERATION_ID_STATUS = {
+ PENDING: 'PENDING',
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+ SEARCHING_FOR_NODES: 'SEARCHING_FOR_NODES',
+ FIND_NODES_START: 'FIND_NODES_START',
+ FIND_NODES_END: 'FIND_NODES_END',
+ PUBLISH: {
+ VALIDATING_ASSERTION_START: 'VALIDATING_ASSERTION_START',
+ VALIDATING_ASSERTION_END: 'VALIDATING_ASSERTION_END',
+ VALIDATING_ASSERTION_REMOTE_START: 'VALIDATING_ASSERTION_REMOTE_START',
+ VALIDATING_ASSERTION_REMOTE_END: 'VALIDATING_ASSERTION_REMOTE_END',
+ VALIDATING_ASSERTION_STAKE_START: 'VALIDATING_ASSERTION_STAKE_START',
+ VALIDATING_ASSERTION_STAKE_END: 'VALIDATING_ASSERTION_STAKE_END',
+ INSERTING_ASSERTION: 'INSERTING_ASSERTION',
+ PUBLISHING_ASSERTION: 'PUBLISHING_ASSERTION',
+ PUBLISH_START: 'PUBLISH_START',
+ PUBLISH_INIT_START: 'PUBLISH_INIT_START',
+ PUBLISH_INIT_END: 'PUBLISH_INIT_END',
+ PUBLISH_PREP_ARGS_START: '',
+ PUBLISH_PREP_ARGS_END: '',
+ PUBLISH_CANONIZATION_START: '',
+ PUBLISH_CANONIZATION_END: '',
+ PUBLISH_GENERATE_METADATA_START: 'PUBLISH_GENERATE_METADATA_START',
+ PUBLISH_GENERATE_METADATA_END: 'PUBLISH_GENERATE_METADATA_END',
+ PUBLISH_BLOCKCHAIN_START: 'PUBLISH_BLOCKCHAIN_START',
+ PUBLISH_BLOCKCHAIN_END: 'PUBLISH_BLOCKCHAIN_END',
+ PUBLISH_LOCAL_STORE_START: 'PUBLISH_LOCAL_STORE_START',
+ PUBLISH_LOCAL_STORE_END: 'PUBLISH_LOCAL_STORE_END',
+ PUBLISH_REPLICATE_START: 'PUBLISH_REPLICATE_START',
+ PUBLISH_REPLICATE_END: 'PUBLISH_REPLICATE_END',
+ PUBLISH_END: 'PUBLISH_END',
+ },
+ GET: {
+ ASSERTION_EXISTS_LOCAL_START: 'ASSERTION_EXISTS_LOCAL_START',
+ ASSERTION_EXISTS_LOCAL_END: 'ASSERTION_EXISTS_LOCAL_END',
+ GET_ASSERTION: 'GET_ASSERTION',
+ GET_START: 'GET_START',
+ GET_INIT_START: 'GET_INIT_START',
+ GET_INIT_END: 'GET_INIT_END',
+ GET_LOCAL_START: 'GET_LOCAL_START',
+ GET_LOCAL_END: 'GET_LOCAL_END',
+ GET_REMOTE_START: 'GET_REMOTE_START',
+ GET_REMOTE_END: 'GET_REMOTE_END',
+ GET_FETCH_FROM_NODES_START: 'GET_FETCH_FROM_NODES_START',
+ GET_FETCH_FROM_NODES_END: 'GET_FETCH_FROM_NODES_START',
+ GET_CREATE_ASSERTION_START: '',
+ GET_CREATE_ASSERTION_END: '',
+ GET_VERIFY_ASSERTION_START: '',
+ GET_VERIFY_ASSERTION_END: '',
+ GET_SAVE_ASSERTION_START: '',
+ GET_SAVE_ASSERTION_END: '',
+ GET_END: 'GET_END',
+ },
+ SEARCH_ASSERTIONS: {
+ VALIDATING_QUERY: 'VALIDATING_QUERY',
+ SEARCHING_ASSERTIONS: 'SEARCHING_ASSERTIONS',
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+ SEARCH_START: 'SEARCH_START',
+ SEARCH_END: 'SEARCH_END',
+ },
+ SEARCH_ENTITIES: {
+ VALIDATING_QUERY: 'VALIDATING_QUERY',
+ SEARCHING_ENTITIES: 'SEARCHING_ENTITIES',
+ },
+};
+
+/**
+ * @constant {object} NETWORK_PROTOCOLS -
+ * Network protocols
+ */
+exports.NETWORK_PROTOCOLS = {
+ STORE: '/store/1.0.0',
+ GET: '/get/1.0.0',
+ SEARCH: '/search/1.0.0',
+ SEARCH_RESULT: '/search/1.0.0/result',
+ SEARCH_ASSERTIONS: '/search/assertions/1.0.0',
+ SEARCH_ASSERTIONS_RESULT: '/search/assertions/1.0.0/result',
+};
+
+/**
+ * @constant {object} PUBLISH_STATUS -
+ * Possible statuses for publish procedure
+ */
+exports.PUBLISH_STATUS = {
+ IN_PROGRESS: 'IN_PROGRESS',
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+};
+
+/**
+ * @constant {object} GET_STATUS -
+ * Possible statuses for get procedure
+ */
+exports.GET_STATUS = {
+ IN_PROGRESS: 'IN_PROGRESS',
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+};
+
+/**
+ * @constant {object} PUBLISH_STATUS -
+ * Possible statuses for publish procedure
+ */
+exports.PUBLISH_REQUEST_STATUS = {
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+};
+
+/**
+ * @constant {object} GET_REQUEST_STATUS -
+ * Possible statuses for get request
+ */
+exports.GET_REQUEST_STATUS = {
+ FAILED: 'FAILED',
+ COMPLETED: 'COMPLETED',
+};
+
+/**
+ * @constant {object} PUBLISH_METHOD -
+ * Possible methods for publish
+ */
+exports.PUBLISH_METHOD = {
+ PUBLISH: 'PUBLISH',
+ PROVISION: 'PROVISION',
+ UPDATE: 'UPDATE',
+};
diff --git a/src/controller/http-api-router.js b/src/controller/http-api-router.js
index e386af84d..78983e3ab 100644
--- a/src/controller/http-api-router.js
+++ b/src/controller/http-api-router.js
@@ -1,76 +1,55 @@
-const { HTTP_API_ROUTES } = require('../constants/constants');
-
-// const supportedVersion = 'v1';
-
class HttpApiRouter {
constructor(ctx) {
this.config = ctx.config;
- this.fileSystemModule = ctx.fileSystemModule;
this.httpClientModuleManager = ctx.httpClientModuleManager;
- this.resolveController = ctx.resolveController;
+ this.getController = ctx.getController;
this.publishController = ctx.publishController;
this.searchController = ctx.searchController;
this.resultController = ctx.resultController;
this.infoController = ctx.infoController;
+
+ this.jsonSchemaService = ctx.jsonSchemaService;
}
async initialize() {
- await this.initializeMiddleware();
- await this.initializeSsl();
+ await this.initializeBeforeMiddlewares();
await this.initializeListeners();
+ await this.initializeAfterMiddlewares();
+ await this.httpClientModuleManager.listen();
}
async initializeListeners() {
- // POST REQUESTS
- this.httpClientModuleManager.post(HTTP_API_ROUTES.PUBLISH, (req, res) => {
- this.publishController.handleHttpApiPublishRequest(req, res);
- });
-
- this.httpClientModuleManager.post(HTTP_API_ROUTES.PROVISION, (req, res) => {
- this.publishController.handleHttpApiProvisionRequest(req, res);
- });
-
- this.httpClientModuleManager.post(HTTP_API_ROUTES.UPDATE, (req, res) => {
- this.publishController.handleHttpApiUpdateRequest(req, res);
- });
-
- this.httpClientModuleManager.post(HTTP_API_ROUTES.QUERY, (req, res) => {
- this.searchController.handleHttpApiQueryRequest(req, res);
- });
-
- this.httpClientModuleManager.post(HTTP_API_ROUTES.PROOFS, (req, res) => {
- this.searchController.handleHttpApiProofsRequest(req, res);
- });
-
- // GET REQUESTS
- this.httpClientModuleManager.get(HTTP_API_ROUTES.RESOLVE, (req, res) => {
- this.resolveController.handleHttpApiResolveRequest(req, res);
- });
-
- this.httpClientModuleManager.get(HTTP_API_ROUTES.SEARCH_ASSERTIONS, (req, res) => {
- this.searchController.handleHttpApiSearchAssertionsRequest(req, res);
- });
-
- this.httpClientModuleManager.get(HTTP_API_ROUTES.SEARCH_ENTITIES, (req, res) => {
- this.searchController.handleHttpApiSearchEntitiesRequest(req, res);
- });
-
- this.httpClientModuleManager.get(HTTP_API_ROUTES.OPERATION_RESULT, (req, res) => {
+ this.httpClientModuleManager.post(
+ '/publish',
+ (req, res) => {
+ this.publishController.handleHttpApiPublishRequest(req, res);
+ },
+ { rateLimit: true, requestSchema: this.jsonSchemaService.publishSchema() },
+ );
+ this.httpClientModuleManager.post(
+ '/get',
+ (req, res) => {
+ this.getController.handleHttpApiGetRequest(req, res);
+ },
+ { rateLimit: true, requestSchema: this.jsonSchemaService.getSchema() },
+ );
+
+ this.httpClientModuleManager.get('/:operation/:operationId', (req, res) => {
this.resultController.handleHttpApiOperationResultRequest(req, res);
});
- this.httpClientModuleManager.get(HTTP_API_ROUTES.INFO, (req, res) => {
+ this.httpClientModuleManager.get('/info', (req, res) => {
this.infoController.handleHttpApiInfoRequest(req, res);
});
}
- async initializeMiddleware() {
- this.middleware = {};
+ async initializeBeforeMiddlewares() {
+ await this.httpClientModuleManager.initializeBeforeMiddlewares();
}
- async initializeSsl() {
- return false;
+ async initializeAfterMiddlewares() {
+ await this.httpClientModuleManager.initializeAfterMiddlewares();
}
}
diff --git a/src/controller/rpc-router.js b/src/controller/rpc-router.js
index e69de29bb..bd1d03dda 100644
--- a/src/controller/rpc-router.js
+++ b/src/controller/rpc-router.js
@@ -0,0 +1,31 @@
+const constants = require('../constants/constants');
+
+class RpcRouter {
+ constructor(ctx) {
+ this.networkModuleManager = ctx.networkModuleManager;
+ this.logger = ctx.logger;
+
+ this.publishController = ctx.publishController;
+ this.getController = ctx.getController;
+ }
+
+ async initialize() {
+ await this.initializeListeners();
+ }
+
+ async initializeListeners() {
+ this.networkModuleManager.handleMessage(
+ constants.NETWORK_PROTOCOLS.STORE,
+ (message, remotePeerId) =>
+ this.publishController.handleNetworkStoreRequest(message, remotePeerId),
+ );
+
+ this.networkModuleManager.handleMessage(
+ constants.NETWORK_PROTOCOLS.GET,
+ (message, remotePeerId) =>
+ this.getController.handleNetworkGetRequest(message, remotePeerId),
+ );
+ }
+}
+
+module.exports = RpcRouter;
diff --git a/src/controller/v1/base-controller.js b/src/controller/v1/base-controller.js
index 25509f011..db2a05f2d 100644
--- a/src/controller/v1/base-controller.js
+++ b/src/controller/v1/base-controller.js
@@ -1,28 +1,10 @@
const { v1: uuidv1 } = require('uuid');
-const Models = require('../../../models');
-const { HANDLER_ID_STATUS } = require('../../../modules/constants');
class BaseController {
- generateHandlerId() {
- return Models.handler_ids.create({
- status: HANDLER_ID_STATUS.PENDING,
- });
- }
-
- async updateFailedHandlerId(handlerId, error) {
- if (handlerId !== null) {
- await Models.handler_ids.update(
- {
- status: HANDLER_ID_STATUS.FAILED,
- data: JSON.stringify({ errorMessage: error.message }),
- },
- {
- where: {
- handler_id: handlerId,
- },
- },
- );
- }
+ constructor(ctx) {
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.fileService = ctx.fileService;
+ this.logger = ctx.logger;
}
returnResponse(res, status, data) {
@@ -30,7 +12,9 @@ class BaseController {
}
generateOperationId() {
- return uuidv1();
+ const operationId = uuidv1();
+ this.logger.debug(`Generated operation id for request ${operationId}`);
+ return operationId;
}
}
diff --git a/src/controller/v1/get-controller.js b/src/controller/v1/get-controller.js
new file mode 100644
index 000000000..a7f280bff
--- /dev/null
+++ b/src/controller/v1/get-controller.js
@@ -0,0 +1,87 @@
+const { NETWORK_MESSAGE_TYPES, OPERATION_ID_STATUS } = require('../../constants/constants');
+const BaseController = require('./base-controller');
+
+class GetController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.getService = ctx.getService;
+ }
+
+ async handleHttpApiGetRequest(req, res) {
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.GET.GET_START,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_INIT_START,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ await this.repositoryModuleManager.createOperationRecord(
+ this.getService.getOperationName(),
+ operationId,
+ this.getService.getOperationStatus().IN_PROGRESS,
+ );
+
+ const { id } = req.body;
+
+ this.logger.info(`Get for ${id} with operation id ${operationId} initiated.`);
+
+ const commandData = {
+ operationId,
+ id,
+ };
+
+ const commandSequence = [
+ 'getLatestAssertionIdCommand',
+ 'localGetCommand',
+ 'networkGetCommand',
+ ];
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.GET.GET_INIT_END,
+ );
+ }
+
+ async handleNetworkGetRequest(message, remotePeerId) {
+ const { operationId, keywordUuid, messageType } = message.header;
+ const { assertionId } = message.data;
+ let commandName;
+ const commandData = { assertionId, remotePeerId, operationId, keywordUuid };
+ switch (messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
+ commandName = 'handleGetInitCommand';
+ break;
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ commandName = 'handleGetRequestCommand';
+ break;
+ default:
+ throw Error('unknown messageType');
+ }
+
+ await this.commandExecutor.add({
+ name: commandName,
+ sequence: [],
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
+ }
+}
+
+module.exports = GetController;
diff --git a/src/controller/v1/info-controller.js b/src/controller/v1/info-controller.js
index 7b04b4e2a..cb86f8c8c 100644
--- a/src/controller/v1/info-controller.js
+++ b/src/controller/v1/info-controller.js
@@ -1,6 +1,12 @@
-class InfoController {
- handleHttpApiInfoRequest(req, res) {
+const pjson = require('../../../package.json');
+const BaseController = require('./base-controller');
+class InfoController extends BaseController {
+ handleHttpApiInfoRequest(req, res) {
+ const { version } = pjson;
+ this.returnResponse(res, 200, {
+ version,
+ });
}
}
diff --git a/src/controller/v1/publish-controller.js b/src/controller/v1/publish-controller.js
index 980b80bfb..0a849487c 100644
--- a/src/controller/v1/publish-controller.js
+++ b/src/controller/v1/publish-controller.js
@@ -1,18 +1,15 @@
-const path = require('path');
-const { MAX_FILE_SIZE, PUBLISH_METHOD } = require('../../../modules/constants');
-const Utilities = require('../../../modules/utilities');
const BaseController = require('./base-controller');
-
-const PublishAllowedVisibilityParams = ['public', 'private'];
+const { PUBLISH_METHOD, ERROR_TYPE, NETWORK_MESSAGE_TYPES } = require('../../constants/constants');
+const { OPERATION_ID_STATUS } = require('../../constants/constants');
class PublishController extends BaseController {
constructor(ctx) {
- super();
- this.workerPool = ctx.workerPool;
+ super(ctx);
this.publishService = ctx.publishService;
- this.logger = ctx.logger;
- this.fileService = ctx.fileService;
+ this.ualService = ctx.ualService;
this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
}
async handleHttpApiPublishRequest(req, res) {
@@ -27,192 +24,99 @@ class PublishController extends BaseController {
return this.handleHttpApiPublishMethod(req, res, PUBLISH_METHOD.UPDATE);
}
- async handleHttpApiPublishMethod(req, res, method) {
- const operationId = this.generateOperationId();
- this.logger.emit({
- msg: 'Started measuring execution of publish command',
- Event_name: 'publish_start',
- Operation_name: 'publish',
- Id_operation: operationId,
- });
- this.logger.emit({
- msg: 'Started measuring execution of check arguments for publishing',
- Event_name: 'publish_init_start',
- Operation_name: 'publish_init',
- Id_operation: operationId,
- });
-
- const validity = this.isRequestValid(req, true, true, true, true, false);
-
- if (!validity.isValid) {
- return this.returnResponse(res, validity.code, { message: validity.message });
- }
-
- const handlerObject = await this.generateHandlerId();
+ async handleHttpApiPublishMethod(req, res) {
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_START,
+ );
- const handlerId = handlerObject.handler_id;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_INIT_START,
+ );
this.returnResponse(res, 202, {
- handler_id: handlerId,
+ operationId,
});
- this.logger.emit({
- msg: 'Finished measuring execution of check arguments for publishing',
- Event_name: 'publish_init_end',
- Operation_name: 'publish_init',
- Id_operation: operationId,
- });
+ const { assertion, blockchain, contract, tokenId } = req.body;
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_INIT_END,
+ );
+ try {
+ await this.repositoryModuleManager.createOperationRecord(
+ this.publishService.getOperationName(),
+ operationId,
+ this.publishService.getOperationStatus().IN_PROGRESS,
+ );
- this.logger.emit({
- msg: 'Started measuring execution of preparing arguments for publishing',
- Event_name: 'publish_prep_args_start',
- Operation_name: 'publish_prep_args',
- Id_operation: operationId,
- });
+ await this.operationIdService.cacheOperationIdData(operationId, { assertion });
- let fileContent;
- const fileExtension = '.json';
- if (req.files) {
- fileContent = req.files.file.data.toString();
- } else {
- fileContent = req.body.data;
- }
+ const ual = this.ualService.deriveUAL(blockchain, contract, tokenId);
- const { ual } = req.body;
+ this.logger.info(`Received assertion with ual: ${ual}`);
- const { visibility } = req.body;
+ const commandData = {
+ ual,
+ operationId,
+ };
- let keywords = [];
- if (req.body.keywords) {
- keywords = await this.workerPool.exec('JSONParse', [req.body.keywords.toLowerCase()]);
- }
- if (keywords.length > 10) {
- keywords = keywords.slice(0, 10);
- this.logger.warn(
- 'Too many keywords provided, limit is 10. Publishing only to the first 10 keywords.',
+ const commandSequence = ['validateAssertionCommand', 'networkPublishCommand'];
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ period: 5000,
+ retries: 3,
+ data: commandData,
+ transactional: false,
+ });
+ } catch (error) {
+ this.logger.error(
+ `Error while initializing publish data: ${error.message}. ${error.stack}`,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ 'Unable to publish data, Failed to process input data!',
+ ERROR_TYPE.PUBLISH.PUBLISH_ROUTE_ERROR,
);
}
- this.logger.emit({
- msg: 'Finished measuring execution of preparing arguments for publishing',
- Event_name: 'publish_prep_args_end',
- Operation_name: 'publish_prep_args',
- Id_operation: operationId,
- });
-
- const handlerIdCachePath = this.fileService.getHandlerIdCachePath();
-
- const documentPath = await this.fileService.writeContentsToFile(
- handlerIdCachePath,
- handlerId,
- fileContent,
- );
- const commandData = {
- fileExtension,
- keywords,
- visibility,
- method,
- ual,
- handlerId,
- operationId,
- documentPath,
- };
-
- const commandSequence = [
- 'prepareAssertionForPublish',
- 'submitProofsCommand',
- 'insertAssertionCommand',
- 'sendAssertionCommand',
- ];
+ }
- await this.commandExecutor.add({
- name: commandSequence[0],
- sequence: commandSequence.slice(1),
+ async handleNetworkStoreRequest(message, remotePeerId) {
+ const { operationId, keywordUuid, messageType } = message.header;
+ const { assertionId, ual } = message.data;
+ const command = {
+ sequence: [],
delay: 0,
- data: commandData,
+ data: { remotePeerId, operationId, keywordUuid, assertionId, ual },
transactional: false,
- });
- }
-
- isRequestValid(
- req,
- validateFiles = true,
- validateFileSize = true,
- validateKeywords = true,
- validateVisibility = true,
- validateUal = true,
- ) {
- if (
- validateFiles &&
- (!req.files ||
- !req.files.file ||
- path.extname(req.files.file.name).toLowerCase() !== '.json') &&
- !req.body.data
- ) {
- return {
- isValid: false,
- code: 400,
- message:
- 'No data provided. It is required to have assertion file or data in body, they must be in JSON-LD format.',
- };
- }
-
- if (validateFileSize && req.files && req.files.file.size > MAX_FILE_SIZE) {
- return {
- isValid: false,
- code: 400,
- message: `File size limit is ${MAX_FILE_SIZE / (1024 * 1024)}MB.`,
- };
- }
-
- if (
- validateFileSize &&
- req.body &&
- req.body.data &&
- Buffer.byteLength(req.body.data, 'utf-8') > MAX_FILE_SIZE
- ) {
- return {
- isValid: false,
- code: 400,
- message: `File size limit is ${MAX_FILE_SIZE / (1024 * 1024)}MB.`,
- };
- }
-
- if (
- validateKeywords &&
- req.body.keywords &&
- !Utilities.isArrayOfStrings(req.body.keywords)
- ) {
- return {
- isValid: false,
- code: 400,
- message:
- 'Keywords must be a non-empty array of strings, all strings must have double quotes.',
- };
- }
-
- if (
- validateVisibility &&
- req.body.visibility &&
- !PublishAllowedVisibilityParams.includes(req.body.visibility)
- ) {
- return {
- isValid: false,
- code: 400,
- message: 'Visibility must be a string, value can be public or private.',
- };
- }
-
- if (validateUal && req.body.ual) {
- return {
- isValid: false,
- code: 400,
- message: 'Ual parameter missing in request.',
- };
+ };
+ switch (messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
+ command.name = 'handleStoreInitCommand';
+ command.period = 5000;
+ command.retries = 3;
+
+ break;
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ // eslint-disable-next-line no-case-declarations
+ const { assertionId: cachedAssertionId } =
+ await this.operationIdService.getCachedOperationIdData(operationId);
+ await this.operationIdService.cacheOperationIdData(operationId, {
+ assertionId: cachedAssertionId,
+ assertion: message.data.assertion,
+ });
+ command.name = 'handleStoreRequestCommand';
+
+ break;
+ default:
+ throw Error('unknown messageType');
}
- return {
- isValid: true,
- };
+ await this.commandExecutor.add(command);
}
}
diff --git a/src/controller/v1/request-schema/get-schema.js b/src/controller/v1/request-schema/get-schema.js
new file mode 100644
index 000000000..9f5be49f1
--- /dev/null
+++ b/src/controller/v1/request-schema/get-schema.js
@@ -0,0 +1,9 @@
+module.exports = () => ({
+ type: 'object',
+ required: ['id'],
+ properties: {
+ id: {
+ type: 'string',
+ },
+ },
+});
diff --git a/src/controller/v1/request-schema/publish-schema.js b/src/controller/v1/request-schema/publish-schema.js
new file mode 100644
index 000000000..fe6138eb2
--- /dev/null
+++ b/src/controller/v1/request-schema/publish-schema.js
@@ -0,0 +1,93 @@
+const { PUBLISH_TYPES } = require('../../../constants/constants');
+
+const assertionSchemaProperties = (blockchainImplementationNames) => ({
+ assertionId: {
+ type: 'string',
+ minLength: '1',
+ },
+ assertion: {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ minItems: 1,
+ },
+ blockchain: {
+ enum: blockchainImplementationNames,
+ },
+ contract: {
+ type: 'string',
+ minLength: 1,
+ },
+});
+
+const assertionSchemaRequired = ['assertionId', 'assertion', 'blockchain', 'contract'];
+
+const assetSchemaProperties = (blockchainImplementationNames) => ({
+ ...assertionSchemaProperties(blockchainImplementationNames),
+ tokenId: {
+ type: 'integer',
+ minimum: 0,
+ },
+});
+
+const assetSchemaRequired = [...assertionSchemaRequired, 'tokenId'];
+
+const indexSchemaProperties = (blockchainImplementationNames) => ({
+ ...assetSchemaProperties(blockchainImplementationNames),
+ assertion: {
+ type: 'array',
+ items: {
+ type: 'string',
+ },
+ minLength: 1,
+ maxLength: 5,
+ },
+ keywords: {
+ type: 'array',
+ minLength: 1,
+ maxLength: 3,
+ uniqueItems: true,
+ },
+});
+
+const indexSchemaRequired = [...assetSchemaRequired, 'keywords'];
+
+module.exports = (blockchainImplementationNames) => ({
+ type: 'object',
+ required: ['publishType'],
+ properties: {
+ publishType: {
+ enum: Object.values(PUBLISH_TYPES),
+ },
+ },
+ allOf: [
+ {
+ if: {
+ properties: { publishType: { const: PUBLISH_TYPES.ASSERTION } },
+ },
+ then: {
+ properties: assertionSchemaProperties(blockchainImplementationNames),
+ required: assertionSchemaRequired,
+ },
+ },
+ {
+ if: {
+ properties: { publishType: { const: PUBLISH_TYPES.ASSET } },
+ },
+ then: {
+ properties: assetSchemaProperties(blockchainImplementationNames),
+ required: assetSchemaRequired,
+ },
+ },
+ {
+ if: {
+ properties: { publishType: { const: PUBLISH_TYPES.INDEX } },
+ },
+ then: {
+ properties: indexSchemaProperties(blockchainImplementationNames),
+ required: indexSchemaRequired,
+ },
+ },
+ ],
+});
diff --git a/src/controller/v1/request-schema/search-schema.js b/src/controller/v1/request-schema/search-schema.js
new file mode 100644
index 000000000..e421faf92
--- /dev/null
+++ b/src/controller/v1/request-schema/search-schema.js
@@ -0,0 +1,20 @@
+module.exports = () => ({
+ type: 'object',
+ required: ['keywords', 'limit', 'offset'],
+ properties: {
+ keywords: {
+ type: 'array',
+ minItems: 1,
+ maxItems: 3,
+ uniqueItems: true,
+ },
+ limit: {
+ type: 'integer',
+ minimum: 1,
+ },
+ offset: {
+ type: 'integer',
+ minimum: 0,
+ },
+ },
+});
diff --git a/src/controller/v1/resolve-controller.js b/src/controller/v1/resolve-controller.js
deleted file mode 100644
index 28fd5c401..000000000
--- a/src/controller/v1/resolve-controller.js
+++ /dev/null
@@ -1,7 +0,0 @@
-class ResolveController {
- handleHttpApiResolveRequest (req, res, next) {
-
- }
-}
-
-module.exports = ResolveController;
diff --git a/src/controller/v1/result-controller.js b/src/controller/v1/result-controller.js
index 82fca2f6c..989b49216 100644
--- a/src/controller/v1/result-controller.js
+++ b/src/controller/v1/result-controller.js
@@ -1,6 +1,79 @@
-class ResultController {
- handleHttpApiOperationResultRequest (req, res) {
+const { OPERATION_ID_STATUS } = require('../../constants/constants');
+const BaseController = require('./base-controller');
+const availableOperations = ['publish', 'get', 'assertions:search', 'entities:search'];
+
+class ResultController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.operationIdService = ctx.operationIdService;
+ }
+
+ async handleHttpApiOperationResultRequest(req, res) {
+ if (!availableOperations.includes(req.params.operation)) {
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Unsupported operation, available operations are: ${availableOperations}`,
+ });
+ }
+
+ const { operationId, operation } = req.params;
+ if (!this.operationIdService.operationIdInRightFormat(operationId)) {
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: 'Operation id is in wrong format',
+ });
+ }
+
+ try {
+ const handlerRecord = await this.operationIdService.getOperationIdRecord(operationId);
+
+ if (handlerRecord) {
+ const response = {
+ status: handlerRecord.status,
+ };
+ if (handlerRecord.status === OPERATION_ID_STATUS.FAILED) {
+ response.data = JSON.parse(handlerRecord.data);
+ }
+
+ switch (operation) {
+ case 'assertions:search':
+ case 'entities:search':
+ case 'get':
+ if (handlerRecord.status === OPERATION_ID_STATUS.COMPLETED) {
+ response.data = await this.operationIdService.getCachedOperationIdData(
+ operationId,
+ );
+ }
+ break;
+ case 'publish':
+ if (handlerRecord.status === OPERATION_ID_STATUS.COMPLETED) {
+ response.data = await this.operationIdService.getCachedOperationIdData(
+ operationId,
+ );
+ }
+ break;
+ default:
+ break;
+ }
+
+ return this.returnResponse(res, 200, response);
+ }
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Handler with id: ${operationId} does not exist.`,
+ });
+ } catch (e) {
+ this.logger.error(
+ `Error while trying to fetch ${operation} data for operation id ${operationId}. Error message: ${e.message}. ${e.stack}`,
+ );
+
+ return this.returnResponse(res, 400, {
+ code: 400,
+ message: `Unexpected error at getting results: ${e.message}`,
+ });
+ }
}
}
diff --git a/src/controller/v1/search-controller.js b/src/controller/v1/search-controller.js
index 017579d78..0b48b9317 100644
--- a/src/controller/v1/search-controller.js
+++ b/src/controller/v1/search-controller.js
@@ -1,18 +1,182 @@
-class SearchController {
- handleHttpApiSearchAssertionsRequest (req, res) {
+const BaseController = require('./base-controller');
+const {
+ OPERATION_ID_STATUS,
+ NETWORK_PROTOCOLS,
+ NETWORK_MESSAGE_TYPES,
+} = require('../../constants/constants');
+class SearchController extends BaseController {
+ constructor(ctx) {
+ super(ctx);
+ this.logger = ctx.logger;
+ this.fileService = ctx.fileService;
+ this.commandExecutor = ctx.commandExecutor;
+ this.operationIdService = ctx.operationIdService;
}
- handleHttpApiSearchEntitiesRequest (req, res) {
+ async handleHttpApiSearchAssertionsRequest(req, res) {
+ const { query } = req.query;
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.SEARCH_START,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.VALIDATING_QUERY,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ this.logger.info(
+ `Search assertions for ${query} with operation id ${operationId} initiated.`,
+ );
+
+ try {
+ // TODO: updated with query params from get req
+ const options = {
+ prefix: true,
+ limit: 40,
+ };
+
+ const commandData = {
+ operationId,
+ query,
+ options,
+ networkProtocol: NETWORK_PROTOCOLS.SEARCH_ASSERTIONS,
+ };
+
+ const commandSequence = [
+ 'localSearchAssertionsCommand',
+ 'findNodesCommand',
+ 'searchAssertionsCommand',
+ ];
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
+ } catch (error) {
+ this.logger.error(
+ `Error while initializing search for assertions: ${error.message}. ${error.stack}`,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ 'Unable to search for assertions, Failed to process input data!',
+ );
+ }
+ }
+
+ async handleHttpApiSearchEntitiesRequest(req, res) {
+ const { query } = req.query;
+
+ const operationId = await this.operationIdService.generateOperationId(
+ OPERATION_ID_STATUS.SEARCH_ENTITIES.VALIDATING_QUERY,
+ );
+
+ this.returnResponse(res, 202, {
+ operationId,
+ });
+
+ this.logger.info(
+ `Search entities for ${query} with operation id ${operationId} initiated.`,
+ );
+
+ try {
+ // TODO: updated with query params
+ const options = {
+ prefix: true,
+ limit: 40,
+ };
+
+ const commandData = {
+ operationId,
+ query,
+ options,
+ networkProtocol: NETWORK_PROTOCOLS.SEARCH,
+ };
+
+ const commandSequence = [
+ 'localSearchEntitiesCommand',
+ 'findNodesCommand',
+ 'searchEntitiesCommand',
+ ];
+
+ await this.commandExecutor.add({
+ name: commandSequence[0],
+ sequence: commandSequence.slice(1),
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
+ } catch (error) {
+ this.logger.error(
+ `Error while initializing search for entities: ${error.message}. ${error.stack}`,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ 'Unable to search for entities, Failed to process input data!',
+ );
+ }
}
- handleHttpApiQueryRequest (req, res) {
+ handleHttpApiQueryRequest() {}
+
+ handleHttpApiProofsRequest() {}
+
+ async handleNetworkSearchAssertionsRequest(message, remotePeerId) {
+ let commandName;
+ const { operationId } = message.header;
+ const commandData = { message, remotePeerId, operationId };
+ switch (message.header.messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
+ commandName = 'handleSearchAssertionsInitCommand';
+ break;
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ commandName = 'handleSearchAssertionsRequestCommand';
+ break;
+ default:
+ throw Error('unknown messageType');
+ }
+ await this.commandExecutor.add({
+ name: commandName,
+ sequence: [],
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
}
- handleHttpApiProofsRequest (req, res) {
+ async handleNetworkSearchEntitiesRequest(message, remotePeerId) {
+ let commandName;
+ const { operationId } = message.header;
+ const commandData = { message, remotePeerId, operationId };
+ switch (message.header.messageType) {
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT:
+ commandName = 'handleSearchEntitiesInitCommand';
+ break;
+ case NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_REQUEST:
+ commandName = 'handleSearchEntitiesRequestCommand';
+ break;
+ default:
+ throw Error('unknown messageType');
+ }
+ await this.commandExecutor.add({
+ name: commandName,
+ sequence: [],
+ delay: 0,
+ data: commandData,
+ transactional: false,
+ });
}
}
diff --git a/modules/logger/logger.js b/src/logger/logger.js
similarity index 62%
rename from modules/logger/logger.js
rename to src/logger/logger.js
index 6625c4e60..ea5972c46 100644
--- a/modules/logger/logger.js
+++ b/src/logger/logger.js
@@ -1,5 +1,7 @@
const pino = require('pino');
const path = require('path');
+const { existsSync } = require('fs');
+const { mkdirpSync } = require('fs-extra');
class Logger {
constructor(logLevel = 'trace', telemetryHubEnabled) {
@@ -10,28 +12,36 @@ class Logger {
initialize(logLevel, telemetryHubEnabled) {
try {
const logFilename = path.join(path.resolve(__dirname, '../../'), 'logs/active.log');
- let chosenTargets = [];
+ const logDirname = path.join(path.resolve(__dirname, '../../'), 'logs');
+ if (!existsSync(logDirname)) {
+ mkdirpSync(logDirname);
+ }
+ const chosenTargets = [
+ {
+ target: './pino-pretty-transport',
+ options: { colorize: true },
+ level: this.logLevel,
+ },
+ ];
if (telemetryHubEnabled) {
- chosenTargets = [
- { target: './pino-pretty-transport', options: { colorize: true }, level: 'trace' },
- { target: 'pino/file', level: 'trace', options: { destination: logFilename } },
- ];
- } else {
- chosenTargets = [
- { target: './pino-pretty-transport', options: { colorize: true }, level: 'trace' },
- ];
+ chosenTargets.push({
+ target: 'pino/file',
+ level: this.logLevel,
+ options: { destination: logFilename },
+ });
}
-
this.pinoLogger = pino({
transport: {
targets: chosenTargets,
},
customLevels: {
emit: 15,
+ api: 25,
},
level: logLevel,
});
} catch (e) {
+ // eslint-disable-next-line no-console
console.error(`Failed to create logger. Error message: ${e.message}`);
}
}
@@ -45,14 +55,7 @@ class Logger {
}
error(obj) {
- this.pinoLogger.error(obj.msg);
- this.pinoLogger.emit({
- msg: `Found error will be reported to Telemetry: ${obj.Event_name}`,
- Operation_name: 'Error',
- Event_name: obj.Event_name,
- Event_value1: obj.Event_value1 ? obj.Event_value1 : '',
- Id_operation: obj.Id_operation ? obj.Id_operation : '',
- });
+ this.pinoLogger.error(obj);
}
warn(obj) {
@@ -75,6 +78,10 @@ class Logger {
this.pinoLogger.trace(obj);
}
+ api(obj) {
+ this.pinoLogger.api(obj);
+ }
+
closeLogger(closingMessage) {
const finalLogger = pino.final(this.pinoLogger);
finalLogger.info(closingMessage);
diff --git a/src/logger/pino-pretty-transport.js b/src/logger/pino-pretty-transport.js
new file mode 100644
index 000000000..d8624d8bb
--- /dev/null
+++ b/src/logger/pino-pretty-transport.js
@@ -0,0 +1,9 @@
+/* eslint-disable global-require */
+module.exports = (opts) =>
+ require('pino-pretty')({
+ ...opts,
+ translateTime: 'yyyy-mm-dd HH:MM:ss',
+ ignore: 'pid,hostname,Event_name,Operation_name,Id_operation',
+ hideObject: true,
+ messageFormat: (log, messageKey) => `${log[messageKey]}`,
+ });
diff --git a/modules/migration/base-migration.js b/src/migration/base-migration.js
similarity index 97%
rename from modules/migration/base-migration.js
rename to src/migration/base-migration.js
index b976fa4e8..4102094b9 100644
--- a/modules/migration/base-migration.js
+++ b/src/migration/base-migration.js
@@ -1,4 +1,3 @@
-const appRootPath = require('app-root-path');
const path = require('path');
const fs = require('fs-extra');
const FileService = require('../service/file-service');
@@ -21,7 +20,7 @@ class BaseMigration {
this.migrationName = migrationName;
this.logger = logger;
this.config = config;
- this.fileService = new FileService({ config: this.config });
+ this.fileService = new FileService({ config: this.config, logger: this.logger });
}
async migrationAlreadyExecuted() {
diff --git a/src/modules/auto-updater/implementation/ot-auto-updater.js b/src/modules/auto-updater/implementation/ot-auto-updater.js
index 86391f485..35add60e6 100644
--- a/src/modules/auto-updater/implementation/ot-auto-updater.js
+++ b/src/modules/auto-updater/implementation/ot-auto-updater.js
@@ -21,7 +21,7 @@ class OTAutoUpdater {
async compareVersions() {
try {
this.logger.debug('AutoUpdater - Comparing versions...');
- const currentVersion = this.readAppVersion(appRootPath.path);
+ const currentVersion = await this.readAppVersion(appRootPath.path);
const remoteVersion = await this.readRemoteVersion();
this.logger.debug(`AutoUpdater - Current version: ${currentVersion}`);
this.logger.debug(`AutoUpdater - Remote Version: ${remoteVersion}`);
@@ -54,7 +54,7 @@ class OTAutoUpdater {
const currentDirectory = appRootPath.path;
const rootPath = path.join(currentDirectory, '..');
- const currentVersion = this.readAppVersion(currentDirectory);
+ const currentVersion = await this.readAppVersion(currentDirectory);
const newVersion = await this.readRemoteVersion();
const updateDirectory = path.join(rootPath, newVersion);
const zipArchiveDestination = `${updateDirectory}.zip`;
@@ -118,10 +118,10 @@ class OTAutoUpdater {
/**
* Reads the applications version from the package.json file.
*/
- readAppVersion(appPath) {
+ async readAppVersion(appPath) {
const file = path.join(appPath, 'package.json');
this.logger.debug(`AutoUpdater - Reading app version from ${file}`);
- const appPackage = fs.readFileSync(file);
+ const appPackage = await fs.promises.readFile(file);
return JSON.parse(appPackage).version;
}
@@ -223,7 +223,7 @@ class OTAutoUpdater {
throw Error('Extracted archive for new ot-node version is not valid');
}
const sourcePath = path.join(extractedDataPath, destinationDirFiles[0]);
-
+ await fs.remove(destinationPath);
await fs.move(sourcePath, destinationPath);
await fs.remove(extractedDataPath);
@@ -240,24 +240,30 @@ class OTAutoUpdater {
const command = `cd ${destination} && npm ci --omit=dev --ignore-scripts`;
const child = exec(command);
-
+ let rejected = false;
child.stdout.on('data', (data) => {
this.logger.trace(`AutoUpdater - npm ci - ${data.replace(/\r?\n|\r/g, '')}`);
});
child.stderr.on('data', (data) => {
- if (data.toLowerCase().includes('error')) {
+ if (data.includes('ERROR')) {
+ this.logger.trace(`Error message: ${data}`);
// npm passes warnings as errors, only reject if "error" is included
const errorData = data.replace(/\r?\n|\r/g, '');
this.logger.error(
`AutoUpdater - Error installing dependencies. Error message: ${errorData}`,
);
- reject(errorData);
+ if (!rejected) {
+ rejected = true;
+ reject(errorData);
+ }
}
});
child.stdout.on('end', () => {
- this.logger.debug(`AutoUpdater - Dependencies installed successfully`);
- resolve();
+ if (!rejected) {
+ this.logger.debug(`AutoUpdater - Dependencies installed successfully`);
+ resolve();
+ }
});
});
}
diff --git a/src/modules/base-module-manager.js b/src/modules/base-module-manager.js
index 05292e468..46111fb4e 100644
--- a/src/modules/base-module-manager.js
+++ b/src/modules/base-module-manager.js
@@ -1,4 +1,11 @@
-const constants = require('../../modules/constants');
+const requiredModules = [
+ 'repository',
+ 'httpClient',
+ 'network',
+ 'validation',
+ 'blockchain',
+ 'tripleStore',
+];
class BaseModuleManager {
constructor(ctx) {
@@ -10,14 +17,23 @@ class BaseModuleManager {
try {
const moduleConfig = this.config.modules[this.getName()];
if (!moduleConfig || !moduleConfig.enabled) {
- this.logger.warn(
- `${this.getName()} module not defined or enabled in configuration`,
- );
+ const message = `${this.getName()} module not defined or enabled in configuration`;
+ if (requiredModules.includes(this.getName())) {
+ throw new Error(`${message} but it's required!`);
+ }
+ this.logger.warn(message);
return false;
}
this.handlers = {};
for (const implementationName in moduleConfig.implementation) {
+ if (
+ moduleConfig.defaultImplementation &&
+ implementationName !== moduleConfig.defaultImplementation
+ ) {
+ // eslint-disable-next-line no-continue
+ continue;
+ }
const implementationConfig = moduleConfig.implementation[implementationName];
if (!implementationConfig) {
@@ -45,13 +61,18 @@ class BaseModuleManager {
config: implementationConfig,
};
}
+ if (Object.keys(this.handlers).length === 0) {
+ throw new Error(`No implementation initialized for module: ${this.getName()}.`);
+ }
this.initialized = true;
return true;
- } catch (e) {
- this.logger.error({
- msg: e.message,
- Event_name: constants.ERROR_TYPE.MODULE_INITIALIZATION_ERROR,
- });
+ } catch (error) {
+ if (requiredModules.includes(this.getName())) {
+ throw new Error(
+ `Module is required but got error during initialization - ${error.message}`,
+ );
+ }
+ this.logger.error(error.message);
return false;
}
}
@@ -67,6 +88,18 @@ class BaseModuleManager {
}
return this.handlers[name];
}
+
+ getImplementationsNames() {
+ return Object.keys(this.handlers);
+ }
+
+ removeImplementation(name = null) {
+ const keys = Object.keys(this.handlers);
+ if (keys.length === 1 || !name) {
+ delete this.handlers[keys[0]];
+ }
+ delete this.handlers[name];
+ }
}
module.exports = BaseModuleManager;
diff --git a/src/modules/blockchain/blockchain-module-manager.js b/src/modules/blockchain/blockchain-module-manager.js
new file mode 100644
index 000000000..15a7bd1c9
--- /dev/null
+++ b/src/modules/blockchain/blockchain-module-manager.js
@@ -0,0 +1,111 @@
+const BaseModuleManager = require('../base-module-manager');
+
+class BlockchainModuleManager extends BaseModuleManager {
+ getName() {
+ return 'blockchain';
+ }
+
+ getPrivateKey(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getPrivateKey();
+ }
+ }
+
+ getPublicKey(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getPublicKey();
+ }
+ }
+
+ getManagementKey(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getManagementKey();
+ }
+ }
+
+ async deployIdentity(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.deployIdentity();
+ }
+ }
+
+ identityExists(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.identityExists();
+ }
+ }
+
+ getIdentity(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getIdentity();
+ }
+ }
+
+ async createProfile(blockchain, peerId) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.createProfile(peerId);
+ }
+ }
+
+ async getEpochs(blockchain, UAI) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getEpochs(UAI);
+ }
+ }
+
+ async getBlockNumber(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getBlockNumber();
+ }
+ }
+
+ getBlockTime(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getBlockTime();
+ }
+ }
+
+ async getChallenge(blockchain, UAI, epoch) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getChallenge(UAI, epoch);
+ }
+ }
+
+ async answerChallenge(blockchain, UAI, epoch, proof, leaf, price) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.answerChallenge(
+ UAI,
+ epoch,
+ proof,
+ leaf,
+ price,
+ );
+ }
+ }
+
+ async getReward(blockchain, UAI, epoch) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getReward(UAI, epoch);
+ }
+ }
+
+ async getLatestCommitHash(blockchain, contract, tokenId) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.getLatestCommitHash(contract, tokenId);
+ }
+ }
+
+ async healthCheck(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.healthCheck();
+ }
+ }
+
+ async restartService(blockchain) {
+ if (this.getImplementation(blockchain)) {
+ return this.getImplementation(blockchain).module.restartService();
+ }
+ }
+}
+
+module.exports = BlockchainModuleManager;
diff --git a/src/modules/blockchain/implementation/ganache/ganache-service.js b/src/modules/blockchain/implementation/ganache/ganache-service.js
new file mode 100644
index 000000000..1be98d88d
--- /dev/null
+++ b/src/modules/blockchain/implementation/ganache/ganache-service.js
@@ -0,0 +1,12 @@
+const Web3Service = require('../web3-service');
+
+class GanacheService extends Web3Service {
+ constructor(ctx) {
+ super(ctx);
+
+ this.baseTokenTicker = 'GANACHE_TOKENS';
+ this.tracTicker = 'gTRAC';
+ }
+}
+
+module.exports = GanacheService;
diff --git a/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js
new file mode 100644
index 000000000..3fb02be02
--- /dev/null
+++ b/src/modules/blockchain/implementation/ot-parachain/ot-parachain-service.js
@@ -0,0 +1,186 @@
+const { ApiPromise, WsProvider } = require('@polkadot/api');
+const { Keyring } = require('@polkadot/keyring');
+const Web3Service = require('../web3-service');
+
+const NATIVE_TOKEN_DECIMALS = 12;
+
+class OtParachainService extends Web3Service {
+ constructor(ctx) {
+ super(ctx);
+
+ this.baseTokenTicker = 'OTP';
+ this.tracTicker = 'TRAC';
+ }
+
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+ this.rpcNumber = 0;
+
+ await Promise.all([this.initializeWeb3(), this.initializeParachainProvider()]);
+ await this.checkEvmAccountsMapping();
+ await this.initializeContracts();
+ }
+
+ async checkEvmAccountsMapping() {
+ const { evmOperationalWalletPublicKey, evmManagementWalletPublicKey } = this.config;
+ const operationalAccount = await this.queryParachainState('evmAccounts', 'accounts', [
+ evmOperationalWalletPublicKey,
+ ]);
+ if (!operationalAccount || operationalAccount.toHex() === '0x') {
+ throw Error('Missing account mapping for operational wallet');
+ }
+
+ const managementAccount = await this.queryParachainState('evmAccounts', 'accounts', [
+ evmManagementWalletPublicKey,
+ ]);
+ if (!managementAccount || managementAccount.toHex() === '0x') {
+ throw Error('Missing account mapping for management wallet');
+ }
+ }
+
+ async initializeEvmAccounts() {
+ const {
+ substrateOperationalWalletPrivateKey,
+ substrateManagementWalletPrivateKey,
+ evmOperationalWalletPublicKey,
+ evmOperationalWalletPrivateKey,
+ evmManagementWalletPublicKey,
+ evmManagementWalletPrivateKey,
+ } = this.config;
+
+ await Promise.all([
+ this.bindEvmAccount(
+ evmOperationalWalletPublicKey,
+ evmOperationalWalletPrivateKey,
+ substrateOperationalWalletPrivateKey,
+ ),
+ this.bindEvmAccount(
+ evmManagementWalletPublicKey,
+ evmManagementWalletPrivateKey,
+ substrateManagementWalletPrivateKey,
+ ),
+ ]);
+ }
+
+ async bindEvmAccount(evmPublicKey, evmPrivateKey, substratePrivateKey) {
+ let account = await this.queryParachainState('evmAccounts', 'accounts', [evmPublicKey]);
+
+ if (account.toHex() === '0x') {
+ const { signature } = await this.web3.eth.accounts.sign(evmPublicKey, evmPrivateKey);
+ const keyring = new Keyring({ type: 'sr25519' });
+ account = await this.callParachainExtrinsic(
+ keyring.createFromUri(substratePrivateKey),
+ 'evmAccounts',
+ 'claimAccount',
+ [evmPublicKey, signature],
+ );
+ }
+
+ if (account.toHex() === '0x') throw Error('Unable to create account mapping for otp');
+
+ return account;
+ }
+
+ async callParachainExtrinsic(keyring, extrinsic, method, args) {
+ let result;
+ while (!result) {
+ try {
+ // eslint-disable-next-line no-await-in-loop
+ result = this.parachainProvider.tx[extrinsic][method](...args).signAndSend(keyring);
+
+ return result;
+ } catch (error) {
+ // eslint-disable-next-line no-await-in-loop
+ await this.handleParachainError(error, method);
+ }
+ }
+ }
+
+ async queryParachainState(state, method, args) {
+ let result;
+ while (!result) {
+ try {
+ // eslint-disable-next-line no-await-in-loop
+ result = await this.parachainProvider.query[state][method](...args);
+
+ return result;
+ } catch (error) {
+ // eslint-disable-next-line no-await-in-loop
+ await this.handleParachainError(error, method);
+ }
+ }
+ }
+
+ async initializeParachainProvider() {
+ let tries = 0;
+ let isRpcConnected = false;
+ while (!isRpcConnected) {
+ if (tries >= this.config.rpcEndpoints.length) {
+ throw Error(
+ 'Blockchain initialisation failed, unable to initialize parachain provider!',
+ );
+ }
+
+ try {
+ // Initialise the provider to connect to the local node
+ const provider = new WsProvider(this.config.rpcEndpoints[this.rpcNumber]);
+
+ // eslint-disable-next-line no-await-in-loop
+ this.parachainProvider = await new ApiPromise({ provider }).isReady;
+ isRpcConnected = true;
+ } catch (e) {
+ this.logger.warn(
+ `Unable to create parachain provider for endpoint : ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }.`,
+ );
+ tries += 1;
+ this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
+ }
+ }
+ }
+
+ async getGasPrice() {
+ if (this.config.gasPriceOracleLink) return super.getGasPrice();
+
+ try {
+ return this.web3.eth.getGasPrice();
+ } catch (error) {
+ return undefined;
+ }
+ }
+
+ async handleParachainError(error, method) {
+ let isRpcError = false;
+ try {
+ await this.parachainProvider.rpc.net.listening();
+ } catch (rpcError) {
+ isRpcError = true;
+ this.logger.warn(
+ `Unable to execute substrate method ${method} using blockchain rpc : ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }.`,
+ );
+ await this.restartParachainProvider();
+ }
+ if (!isRpcError) throw error;
+ }
+
+ async restartParachainProvider() {
+ this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
+ this.logger.warn(
+ `There was an issue with current parachain provider. Connecting to ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }`,
+ );
+ await this.initializeParachainProvider();
+ }
+
+ async getNativeTokenBalance() {
+ const nativeBalance = await this.web3.eth.getBalance(this.getPublicKey());
+ return nativeBalance / 10 ** NATIVE_TOKEN_DECIMALS;
+ }
+}
+
+module.exports = OtParachainService;
diff --git a/src/modules/blockchain/implementation/polygon/polygon-service.js b/src/modules/blockchain/implementation/polygon/polygon-service.js
new file mode 100644
index 000000000..77f07f7cd
--- /dev/null
+++ b/src/modules/blockchain/implementation/polygon/polygon-service.js
@@ -0,0 +1,12 @@
+const Web3Service = require('../web3-service');
+
+class PolygonService extends Web3Service {
+ constructor(ctx) {
+ super(ctx);
+
+ this.baseTokenTicker = 'MATIC';
+ this.tracTicker = 'mTRAC';
+ }
+}
+
+module.exports = PolygonService;
diff --git a/src/modules/blockchain/implementation/web3-service.js b/src/modules/blockchain/implementation/web3-service.js
new file mode 100644
index 000000000..0e4ed2eb5
--- /dev/null
+++ b/src/modules/blockchain/implementation/web3-service.js
@@ -0,0 +1,363 @@
+const Web3 = require('web3');
+const axios = require('axios');
+const { peerId2Hash } = require('assertion-tools');
+const Hub = require('dkg-evm-module/build/contracts/Hub.json');
+const AssetRegistry = require('dkg-evm-module/build/contracts/AssetRegistry.json');
+const ERC20Token = require('dkg-evm-module/build/contracts/ERC20Token.json');
+const Identity = require('dkg-evm-module/build/contracts/Identity.json');
+const Profile = require('dkg-evm-module/build/contracts/Profile.json');
+const ProfileStorage = require('dkg-evm-module/build/contracts/ProfileStorage.json');
+const { INIT_STAKE_AMOUNT, WEBSOCKET_PROVIDER_OPTIONS } = require('../../../constants/constants');
+
+class Web3Service {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+
+ this.rpcNumber = 0;
+ await this.initializeWeb3();
+ await this.initializeContracts();
+ }
+
+ async initializeWeb3() {
+ let tries = 0;
+ let isRpcConnected = false;
+ while (!isRpcConnected) {
+ if (tries >= this.config.rpcEndpoints.length) {
+ throw Error('Blockchain initialisation failed');
+ }
+
+ try {
+ if (this.config.rpcEndpoints[this.rpcNumber].startsWith('ws')) {
+ const provider = new Web3.providers.WebsocketProvider(
+ this.config.rpcEndpoints[this.rpcNumber],
+ WEBSOCKET_PROVIDER_OPTIONS,
+ );
+ this.web3 = new Web3(provider);
+ } else {
+ this.web3 = new Web3(this.config.rpcEndpoints[this.rpcNumber]);
+ }
+ // eslint-disable-next-line no-await-in-loop
+ isRpcConnected = await this.web3.eth.net.isListening();
+ } catch (e) {
+ this.logger.warn(
+ `Unable to connect to blockchain rpc : ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }.`,
+ );
+ tries += 1;
+ this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
+ }
+ }
+ }
+
+ async initializeContracts() {
+ // TODO encapsulate in a generic function
+ this.logger.info(`Hub contract address is ${this.config.hubContractAddress}`);
+ this.hubContract = new this.web3.eth.Contract(Hub.abi, this.config.hubContractAddress);
+
+ const assetRegistryAddress = await this.callContractFunction(
+ this.hubContract,
+ 'getContractAddress',
+ ['AssetRegistry'],
+ );
+ this.AssetRegistryContract = new this.web3.eth.Contract(
+ AssetRegistry.abi,
+ assetRegistryAddress,
+ );
+
+ const tokenAddress = await this.callContractFunction(
+ this.hubContract,
+ 'getContractAddress',
+ ['Token'],
+ );
+ this.TokenContract = new this.web3.eth.Contract(ERC20Token.abi, tokenAddress);
+
+ const profileAddress = await this.callContractFunction(
+ this.hubContract,
+ 'getContractAddress',
+ ['Profile'],
+ );
+ this.ProfileContract = new this.web3.eth.Contract(Profile.abi, profileAddress);
+
+ const profileStorageAddress = await this.callContractFunction(
+ this.hubContract,
+ 'getContractAddress',
+ ['ProfileStorage'],
+ );
+ this.ProfileStorageContract = new this.web3.eth.Contract(
+ ProfileStorage.abi,
+ profileStorageAddress,
+ );
+
+ if (this.identityExists()) {
+ this.identityContract = new this.web3.eth.Contract(Identity.abi, this.getIdentity());
+ }
+
+ this.logger.debug(
+ `Connected to blockchain rpc : ${this.config.rpcEndpoints[this.rpcNumber]}.`,
+ );
+
+ await this.logBalances();
+ }
+
+ async logBalances() {
+ const nativeBalance = await this.getNativeTokenBalance();
+ const tokenBalance = await this.getTokenBalance();
+ this.logger.info(
+ `Balance of ${this.getPublicKey()} is ${nativeBalance} ${
+ this.baseTokenTicker
+ } and ${tokenBalance} ${this.tracTicker}.`,
+ );
+ }
+
+ async getNativeTokenBalance() {
+ const nativeBalance = await this.web3.eth.getBalance(this.getPublicKey());
+ return this.web3.utils.fromWei(nativeBalance);
+ }
+
+ async getTokenBalance() {
+ const tokenBalance = await this.callContractFunction(this.TokenContract, 'balanceOf', [
+ this.getPublicKey(),
+ ]);
+ return this.web3.utils.fromWei(tokenBalance);
+ }
+
+ identityExists() {
+ return this.config.identity != null;
+ }
+
+ getIdentity() {
+ return this.config.identity;
+ }
+
+ getBlockNumber() {
+ return this.web3.eth.getBlockNumber();
+ }
+
+ // TODO get from blockchain
+ getBlockTime() {
+ return this.config.blockTime;
+ }
+
+ async deployIdentity() {
+ const transactionReceipt = await this.deployContract(Identity, [
+ this.getPublicKey(),
+ this.getManagementKey(),
+ ]);
+ this.config.identity = transactionReceipt.contractAddress;
+ }
+
+ async createProfile(peerId) {
+ await this.executeContractFunction(this.TokenContract, 'increaseAllowance', [
+ this.ProfileContract.options.address,
+ INIT_STAKE_AMOUNT,
+ ]);
+
+ const nodeId = await peerId2Hash(peerId);
+
+ await this.executeContractFunction(this.ProfileContract, 'createProfile', [
+ this.getManagementKey(),
+ nodeId,
+ INIT_STAKE_AMOUNT,
+ this.getIdentity(),
+ ]);
+ }
+
+ getEpochs(UAI) {
+ return this.callContractFunction(this.AssetRegistryContract, 'getEpochs', [UAI]);
+ }
+
+ async getChallenge(UAI, epoch) {
+ return this.callContractFunction(this.AssetRegistryContract, 'getChallenge', [
+ UAI,
+ epoch,
+ this.getIdentity(),
+ ]);
+ }
+
+ async answerChallenge(UAI, epoch, proof, leaf, price) {
+ return this.executeContractFunction(this.AssetRegistryContract, 'answerChallenge', [
+ UAI,
+ epoch,
+ proof,
+ leaf,
+ price,
+ this.getIdentity(),
+ ]);
+ }
+
+ async getReward(UAI, epoch) {
+ return this.executeContractFunction(this.AssetRegistryContract, 'getReward', [
+ UAI,
+ epoch,
+ this.getIdentity(),
+ ]);
+ }
+
+ getPrivateKey() {
+ return this.config.evmOperationalWalletPrivateKey;
+ }
+
+ getPublicKey() {
+ return this.config.evmOperationalWalletPublicKey;
+ }
+
+ getManagementKey() {
+ return this.config.evmManagementWalletPublicKey;
+ }
+
+ async getGasPrice() {
+ try {
+ const response = await axios.get(this.config.gasPriceOracleLink);
+ const gasPriceRounded = Math.round(response.data.standard.maxFee * 1e9);
+ return gasPriceRounded;
+ } catch (error) {
+ return undefined;
+ }
+ }
+
+ async callContractFunction(contractInstance, functionName, args) {
+ let result;
+ while (!result) {
+ try {
+ // eslint-disable-next-line no-await-in-loop
+ result = await contractInstance.methods[functionName](...args).call();
+ } catch (error) {
+ // eslint-disable-next-line no-await-in-loop
+ await this.handleError(error, functionName);
+ }
+ }
+
+ return result;
+ }
+
+ async executeContractFunction(contractInstance, functionName, args) {
+ let result;
+ while (!result) {
+ try {
+ /* eslint-disable no-await-in-loop */
+ const gasPrice = await this.getGasPrice();
+
+ const gasLimit = await contractInstance.methods[functionName](...args).estimateGas({
+ from: this.getPublicKey(),
+ });
+
+ const encodedABI = contractInstance.methods[functionName](...args).encodeABI();
+ const tx = {
+ from: this.getPublicKey(),
+ to: contractInstance.options.address,
+ data: encodedABI,
+ gasPrice: gasPrice || this.web3.utils.toWei('20', 'Gwei'),
+ gas: gasLimit || this.web3.utils.toWei('900', 'Kwei'),
+ };
+
+ const createdTransaction = await this.web3.eth.accounts.signTransaction(
+ tx,
+ this.getPrivateKey(),
+ );
+ result = await this.web3.eth.sendSignedTransaction(
+ createdTransaction.rawTransaction,
+ );
+ } catch (error) {
+ await this.handleError(error, functionName);
+ }
+ }
+
+ return result;
+ }
+
+ async deployContract(contract, args) {
+ let result;
+ while (!result) {
+ try {
+ const contractInstance = new this.web3.eth.Contract(contract.abi);
+ const gasPrice = await this.getGasPrice();
+
+ const gasLimit = await contractInstance
+ .deploy({
+ data: contract.bytecode,
+ arguments: args,
+ })
+ .estimateGas({
+ from: this.getPublicKey(),
+ });
+
+ const encodedABI = contractInstance
+ .deploy({
+ data: contract.bytecode,
+ arguments: args,
+ })
+ .encodeABI();
+
+ const tx = {
+ from: this.getPublicKey(),
+ data: encodedABI,
+ gasPrice: gasPrice || this.web3.utils.toWei('20', 'Gwei'),
+ gas: gasLimit || this.web3.utils.toWei('900', 'Kwei'),
+ };
+
+ const createdTransaction = await this.web3.eth.accounts.signTransaction(
+ tx,
+ this.getPrivateKey(),
+ );
+
+ return this.web3.eth.sendSignedTransaction(createdTransaction.rawTransaction);
+ } catch (error) {
+ await this.handleError(error, 'deploy');
+ }
+ }
+
+ return result;
+ }
+
+ async getLatestCommitHash(contract, tokenId) {
+ const assertionId = await this.callContractFunction(
+ this.AssetRegistryContract,
+ 'getCommitHash',
+ [tokenId, 0],
+ );
+
+ return assertionId;
+ }
+
+ async healthCheck() {
+ try {
+ const gasPrice = await this.web3.eth.getGasPrice();
+ if (gasPrice) return true;
+ } catch (e) {
+ this.logger.error(`Error on checking blockchain. ${e}`);
+ return false;
+ }
+ return false;
+ }
+
+ async handleError(error, functionName) {
+ let isRpcError = false;
+ try {
+ await this.web3.eth.net.isListening();
+ } catch (rpcError) {
+ isRpcError = true;
+ this.logger.warn(
+ `Unable to execute smart contract function ${functionName} using blockchain rpc : ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }.`,
+ );
+ await this.restartService();
+ }
+ if (!isRpcError) throw error;
+ }
+
+ async restartService() {
+ this.rpcNumber = (this.rpcNumber + 1) % this.config.rpcEndpoints.length;
+ this.logger.warn(
+ `There was an issue with current blockchain rpc. Connecting to ${
+ this.config.rpcEndpoints[this.rpcNumber]
+ }`,
+ );
+ await this.initializeWeb3();
+ await this.initializeContracts();
+ }
+}
+
+module.exports = Web3Service;
diff --git a/src/modules/http-client/http-client-module-manager.js b/src/modules/http-client/http-client-module-manager.js
index deaa2992d..564dcc22d 100644
--- a/src/modules/http-client/http-client-module-manager.js
+++ b/src/modules/http-client/http-client-module-manager.js
@@ -1,19 +1,24 @@
const BaseModuleManager = require('../base-module-manager');
class HttpClientModuleManager extends BaseModuleManager {
+ constructor(ctx) {
+ super(ctx);
+ this.authService = ctx.authService;
+ }
+
getName() {
return 'httpClient';
}
- get(route, ...callback) {
+ get(route, callback, options = {}) {
if (this.initialized) {
- return this.getImplementation().module.get(route, ...callback);
+ return this.getImplementation().module.get(route, callback, options);
}
}
- post(route, ...callback) {
+ post(route, callback, options = {}) {
if (this.initialized) {
- return this.getImplementation().module.post(route, ...callback);
+ return this.getImplementation().module.post(route, callback, options);
}
}
@@ -22,6 +27,24 @@ class HttpClientModuleManager extends BaseModuleManager {
return this.getImplementation().module.sendResponse(res, status, returnObject);
}
}
+
+ async listen() {
+ if (this.initialized) {
+ return this.getImplementation().module.listen();
+ }
+ }
+
+ async initializeBeforeMiddlewares() {
+ if (this.initialized) {
+ return this.getImplementation().module.initializeBeforeMiddlewares(this.authService);
+ }
+ }
+
+ async initializeAfterMiddlewares() {
+ if (this.initialized) {
+ return this.getImplementation().module.initializeAfterMiddlewares(this.authService);
+ }
+ }
}
module.exports = HttpClientModuleManager;
diff --git a/src/modules/http-client/implementation/express-http-client.js b/src/modules/http-client/implementation/express-http-client.js
index 02f7769e5..f4be00eb9 100644
--- a/src/modules/http-client/implementation/express-http-client.js
+++ b/src/modules/http-client/implementation/express-http-client.js
@@ -1,22 +1,82 @@
const express = require('express');
+const https = require('https');
+const fs = require('fs-extra');
+const fileUpload = require('express-fileupload');
+const cors = require('cors');
+const requestValidationMiddleware = require('./middleware/request-validation-middleware');
+const rateLimiterMiddleware = require('./middleware/rate-limiter-middleware');
+const authenticationMiddleware = require('./middleware/authentication-middleware');
+const authorizationMiddleware = require('./middleware/authorization-middleware');
class ExpressHttpClient {
- async initialize() {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
this.app = express();
}
- async get(route, ...callback) {
- this.app.get(route, callback);
+ async get(route, callback, options) {
+ this.app.get(route, ...this.selectMiddlewares(options), callback);
}
- async post(route, ...callback) {
- this.app.post(route, callback);
+ async post(route, callback, options) {
+ this.app.post(route, ...this.selectMiddlewares(options), callback);
}
sendResponse(res, status, returnObject) {
res.status(status);
res.send(returnObject);
}
+
+ async listen() {
+ if (this.config.useSsl) {
+ this.httpsServer = https.createServer(
+ {
+ key: await fs.promises.readFile(this.config.sslKeyPath),
+ cert: await fs.promises.readFile(this.config.sslCertificatePath),
+ },
+ this.app,
+ );
+ this.httpsServer.listen(this.config.port);
+ } else {
+ this.app.listen(this.config.port);
+ }
+ this.logger.info(`Node listening on port: ${this.config.port}`);
+ }
+
+ selectMiddlewares(options) {
+ const middlewares = [];
+ if (options.rateLimit) middlewares.push(rateLimiterMiddleware(this.config.rateLimiter));
+ if (options.requestSchema)
+ middlewares.push(requestValidationMiddleware(options.requestSchema));
+
+ return middlewares;
+ }
+
+ async initializeBeforeMiddlewares(authService) {
+ this.app.use(authenticationMiddleware(authService));
+ this.app.use(authorizationMiddleware(authService));
+ this._initializeBaseMiddlewares();
+ }
+
+ async initializeAfterMiddlewares() {
+ // placeholder method for after middlewares
+ }
+
+ _initializeBaseMiddlewares() {
+ this.app.use(
+ fileUpload({
+ createParentPath: true,
+ }),
+ );
+
+ this.app.use(cors());
+ this.app.use(express.json());
+ this.app.use((req, res, next) => {
+ this.logger.api(`${req.method}: ${req.url} request received`);
+ return next();
+ });
+ }
}
module.exports = ExpressHttpClient;
diff --git a/src/modules/http-client/implementation/middleware/authentication-middleware.js b/src/modules/http-client/implementation/middleware/authentication-middleware.js
new file mode 100644
index 000000000..970bb92c9
--- /dev/null
+++ b/src/modules/http-client/implementation/middleware/authentication-middleware.js
@@ -0,0 +1,37 @@
+const parseIp = (req) => {
+ let xForwardedFor;
+ let socketRemoteAddress;
+
+ if (req.headers['x-forwarded-for']) {
+ xForwardedFor = req.headers['x-forwarded-for'].split(',').shift();
+ }
+
+ if (req.socket) {
+ socketRemoteAddress = req.socket.remoteAddress;
+ }
+
+ return xForwardedFor || socketRemoteAddress;
+};
+
+module.exports = (authService) => async (req, res, next) => {
+ const operation = req.url.split('/')[1].toUpperCase();
+
+ if (authService.isPublicOperation(operation)) {
+ return next();
+ }
+
+ const ip = parseIp(req);
+
+ const token =
+ req.headers.authorization &&
+ req.headers.authorization.startsWith('Bearer ') &&
+ req.headers.authorization.split(' ')[1];
+
+ const isAuthenticated = await authService.authenticate(ip, token);
+
+ if (!isAuthenticated) {
+ return res.status(401).send('Unauthenticated.');
+ }
+
+ next();
+};
diff --git a/src/modules/http-client/implementation/middleware/authorization-middleware.js b/src/modules/http-client/implementation/middleware/authorization-middleware.js
new file mode 100644
index 000000000..f67374956
--- /dev/null
+++ b/src/modules/http-client/implementation/middleware/authorization-middleware.js
@@ -0,0 +1,22 @@
+const getToken = (req) => {
+ if (req.headers.authorization && req.headers.authorization.startsWith('Bearer ')) {
+ return req.headers.authorization.split(' ')[1];
+ }
+};
+
+module.exports = (authService) => async (req, res, next) => {
+ const operation = req.url.split('/')[1].toUpperCase();
+
+ if (authService.isPublicOperation(operation)) {
+ return next();
+ }
+
+ const token = getToken(req);
+ const isAuthorized = await authService.isAuthorized(token, operation);
+
+ if (!isAuthorized) {
+ return res.status(403).send('Forbidden.');
+ }
+
+ next();
+};
diff --git a/src/modules/http-client/implementation/middleware/rate-limiter-middleware.js b/src/modules/http-client/implementation/middleware/rate-limiter-middleware.js
new file mode 100644
index 000000000..ad087ff89
--- /dev/null
+++ b/src/modules/http-client/implementation/middleware/rate-limiter-middleware.js
@@ -0,0 +1,10 @@
+const rateLimiter = require('express-rate-limit');
+
+module.exports = (config) =>
+ rateLimiter({
+ windowMs: config.timeWindowSeconds * 1000,
+ max: config.maxRequests,
+ message: `Too many requests sent, maximum number of requests per minute is ${config.maxRequests}`,
+ standardHeaders: true, // Return rate limit info in the `RateLimit-*` headers
+ legacyHeaders: false, // Disable the `X-RateLimit-*` headers
+ });
diff --git a/src/modules/http-client/implementation/middleware/request-validation-middleware.js b/src/modules/http-client/implementation/middleware/request-validation-middleware.js
new file mode 100644
index 000000000..7f5330d62
--- /dev/null
+++ b/src/modules/http-client/implementation/middleware/request-validation-middleware.js
@@ -0,0 +1,22 @@
+const { Validator } = require('jsonschema');
+
+const v = new Validator();
+
+module.exports = function requestValidationMiddleware(requestSchema) {
+ return (req, res, next) => {
+ if (req.get('Content-Type') !== 'application/json') {
+ res.status(401).send('Invalid header format');
+ return;
+ }
+
+ const result = v.validate(req.body, requestSchema);
+ if (result.errors.length > 0) {
+ res.status(400).json({
+ status: 'FAILED',
+ errors: result.errors.map((e) => e.message),
+ });
+ } else {
+ next();
+ }
+ };
+};
diff --git a/src/modules/network/implementation/libp2p-service.js b/src/modules/network/implementation/libp2p-service.js
new file mode 100644
index 000000000..12fc06693
--- /dev/null
+++ b/src/modules/network/implementation/libp2p-service.js
@@ -0,0 +1,537 @@
+const Libp2p = require('libp2p');
+const { Record } = require('libp2p-record');
+const KadDHT = require('libp2p-kad-dht');
+const Bootstrap = require('libp2p-bootstrap');
+const { NOISE } = require('libp2p-noise');
+const MPLEX = require('libp2p-mplex');
+const TCP = require('libp2p-tcp');
+const pipe = require('it-pipe');
+const lp = require('it-length-prefixed');
+const map = require('it-map');
+const PeerId = require('peer-id');
+const { InMemoryRateLimiter } = require('rolling-rate-limiter');
+const toobusy = require('toobusy-js');
+const { v5: uuidv5 } = require('uuid');
+const constants = require('../../../constants/constants');
+
+const initializationObject = {
+ addresses: {
+ listen: ['/ip4/0.0.0.0/tcp/9000'],
+ },
+ modules: {
+ transport: [TCP],
+ streamMuxer: [MPLEX],
+ connEncryption: [NOISE],
+ dht: KadDHT,
+ },
+ dialer: {
+ dialTimeout: 2e3,
+ },
+ config: {
+ dht: {
+ enabled: true,
+ },
+ },
+};
+
+class Libp2pService {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+
+ if (this.config.bootstrap.length > 0) {
+ initializationObject.modules.peerDiscovery = [Bootstrap];
+ initializationObject.config.peerDiscovery = {
+ autoDial: true,
+ [Bootstrap.tag]: {
+ enabled: true,
+ list: this.config.bootstrap,
+ },
+ };
+ }
+ initializationObject.addresses = {
+ listen: [`/ip4/0.0.0.0/tcp/${this.config.port}`], // for production
+ // announce: ['/dns4/auto-relay.libp2p.io/tcp/443/wss/p2p/QmWDn2LY8nannvSWJzruUYoLZ4vV83vfCBwd8DipvdgQc3']
+ };
+ let id;
+ let privKey;
+ if (!this.config.peerId) {
+ if (!this.config.privateKey) {
+ id = await PeerId.create({ bits: 1024, keyType: 'RSA' });
+ privKey = id.toJSON().privKey;
+ } else {
+ privKey = this.config.privateKey;
+ id = await PeerId.createFromPrivKey(this.config.privateKey);
+ }
+ this.config.privateKey = privKey;
+ this.config.peerId = id;
+ }
+
+ initializationObject.peerId = this.config.peerId;
+ this._initializeRateLimiters();
+ /**
+ * sessions = {
+ * [peerId]: {
+ * [operationId]: {
+ * [keywordUuid] : {
+ * stream
+ * }
+ * }
+ * }
+ * }
+ */
+ this.sessions = {};
+ this.node = await Libp2p.create(initializationObject);
+ this._initializeNodeListeners();
+ await this.node.start();
+ const port = parseInt(this.node.multiaddrs.toString().split('/')[4], 10);
+ const peerId = this.node.peerId._idB58String;
+ this.config.id = peerId;
+ this.logger.info(`Network ID is ${peerId}, connection port is ${port}`);
+ }
+
+ _initializeNodeListeners() {
+ this.node.on('peer:discovery', (peer) => {
+ this._onPeerDiscovery(peer);
+ });
+ this.node.connectionManager.on('peer:connect', (connection) => {
+ this._onPeerConnect(connection);
+ });
+ }
+
+ _initializeRateLimiters() {
+ const basicRateLimiter = new InMemoryRateLimiter({
+ interval: constants.NETWORK_API_RATE_LIMIT.TIME_WINDOW_MILLS,
+ maxInInterval: constants.NETWORK_API_RATE_LIMIT.MAX_NUMBER,
+ });
+
+ const spamDetection = new InMemoryRateLimiter({
+ interval: constants.NETWORK_API_SPAM_DETECTION.TIME_WINDOW_MILLS,
+ maxInInterval: constants.NETWORK_API_SPAM_DETECTION.MAX_NUMBER,
+ });
+
+ this.rateLimiter = {
+ basicRateLimiter,
+ spamDetection,
+ };
+
+ this.blackList = {};
+ }
+
+ _onPeerDiscovery(peer) {
+ this.logger.trace(`Node ${this.node.peerId._idB58String} discovered ${peer._idB58String}`);
+ }
+
+ _onPeerConnect(connection) {
+ this.logger.trace(
+ `Node ${
+ this.node.peerId._idB58String
+ } connected to ${connection.remotePeer.toB58String()}`,
+ );
+ }
+
+ async findNodes(key, protocol) {
+ const encodedKey = new TextEncoder().encode(key);
+ const nodes = this.node._dht.peerRouting.getClosestPeers(encodedKey);
+ const result = [];
+ for await (const node of nodes) {
+ if (this.node.peerStore.peers.get(node._idB58String).protocols.includes(protocol)) {
+ result.push(node);
+ }
+ }
+
+ return result;
+ }
+
+ getPeers() {
+ return this.node.connectionManager.connections;
+ }
+
+ getPeerId() {
+ return this.node.peerId;
+ }
+
+ store(peer, key, object) {
+ const encodedKey = new TextEncoder().encode(key);
+ const encodedObject = new TextEncoder().encode(object);
+ const record = this._createPutRecord(encodedKey, encodedObject);
+ return this.node._dht._putValueToPeer(encodedKey, record, peer);
+ }
+
+ _createPutRecord(key, value) {
+ const rec = new Record(key, value, new Date());
+ return rec.serialize();
+ }
+
+ async handleMessage(protocol, handler) {
+ this.logger.info(`Enabling network protocol: ${protocol}`);
+
+ this.node.handle(protocol, async (handlerProps) => {
+ const { stream } = handlerProps;
+ const remotePeerId = handlerProps.connection.remotePeer._idB58String;
+ const { message, valid, busy } = await this._readMessageFromStream(
+ stream,
+ this.isRequestValid.bind(this),
+ remotePeerId,
+ );
+
+ this.updateSessionStream(
+ message.header.operationId,
+ message.header.keywordUuid,
+ remotePeerId,
+ stream,
+ );
+
+ if (!valid) {
+ await this.sendMessageResponse(
+ protocol,
+ remotePeerId,
+ constants.NETWORK_MESSAGE_TYPES.RESPONSES.NACK,
+ message.header.operationId,
+ message.header.keywordUuid,
+ {},
+ );
+ } else if (busy) {
+ await this.sendMessageResponse(
+ protocol,
+ remotePeerId,
+ constants.NETWORK_MESSAGE_TYPES.RESPONSES.BUSY,
+ message.header.operationId,
+ message.header.keywordUuid,
+ {},
+ );
+ } else {
+ this.logger.debug(
+ `Receiving message from ${remotePeerId} to ${this.config.id}: event=${protocol}, messageType=${message.header.messageType};`,
+ );
+ await handler(message, remotePeerId);
+ }
+ });
+ }
+
+ updateSessionStream(operationId, keywordUuid, remotePeerId, stream) {
+ this.logger.trace(
+ `Storing new session stream for remotePeerId: ${remotePeerId} with operation id: ${operationId}, keywordUuid: ${keywordUuid}`,
+ );
+ if (!this.sessions[remotePeerId]) {
+ this.sessions[remotePeerId] = {
+ [operationId]: {
+ [keywordUuid]: {
+ stream,
+ },
+ },
+ };
+ } else if (!this.sessions[remotePeerId][operationId]) {
+ this.sessions[remotePeerId][operationId] = {
+ [keywordUuid]: {
+ stream,
+ },
+ };
+ } else {
+ this.sessions[remotePeerId][operationId][keywordUuid] = {
+ stream,
+ };
+ }
+ }
+
+ getSessionStream(operationId, keywordUuid, remotePeerId) {
+ if (
+ this.sessions[remotePeerId] &&
+ this.sessions[remotePeerId][operationId] &&
+ this.sessions[remotePeerId][operationId][keywordUuid]
+ ) {
+ this.logger.trace(
+ `Session found remotePeerId: ${remotePeerId}, operation id: ${operationId}, keywordUuid: ${keywordUuid}`,
+ );
+ return this.sessions[remotePeerId][operationId][keywordUuid].stream;
+ }
+ return null;
+ }
+
+ createStreamMessage(message, operationId, keywordUuid, messageType) {
+ return {
+ header: {
+ messageType,
+ operationId,
+ keywordUuid,
+ },
+ data: message,
+ };
+ }
+
+ async sendMessage(protocol, remotePeerId, messageType, operationId, keyword, message) {
+ const keywordUuid = uuidv5(keyword, uuidv5.URL);
+
+ this.logger.trace(
+ `Sending message to ${remotePeerId._idB58String}: event=${protocol}, messageType=${messageType}, operationId: ${operationId}, keywordUuid: ${keywordUuid}`,
+ );
+
+ // const sessionStream = this.getSessionStream(operationId, remotePeerId._idB58String);
+ // if (!sessionStream) {
+ this.logger.trace(
+ `Dialing remotePeerId: ${remotePeerId._idB58String} for protocol: ${protocol}`,
+ );
+ const { stream } = await this.node.dialProtocol(remotePeerId, protocol);
+ // } else {
+ // stream = sessionStream;
+ // }
+
+ this.updateSessionStream(operationId, keywordUuid, remotePeerId._idB58String, stream);
+
+ const streamMessage = this.createStreamMessage(
+ message,
+ operationId,
+ keywordUuid,
+ messageType,
+ );
+
+ await this._sendMessageToStream(stream, streamMessage);
+ // if (!this.sessions[remotePeerId._idB58String]) {
+ // this.sessions[remotePeerId._idB58String] = {
+ // [operationId]: {
+ // stream
+ // }
+ // }
+ // } else {
+ // this.sessions[remotePeerId._idB58String][operationId] = {
+ // stream
+ // }
+ // }
+ // if (!this.sessions.sender[message.header.sessionId]) {
+ // this.sessions.sender[message.header.sessionId] = {};
+ // }
+ const { message: response, valid } = await this._readMessageFromStream(
+ stream,
+ this.isResponseValid.bind(this),
+ remotePeerId._idB58String,
+ );
+ this.logger.trace(
+ `Receiving response from ${remotePeerId._idB58String} : event=${protocol}, messageType=${response.header.messageType};`,
+ );
+
+ return valid ? response : null;
+ }
+
+ async sendMessageResponse(
+ protocol,
+ remotePeerId,
+ messageType,
+ operationId,
+ keywordUuid,
+ message,
+ ) {
+ this.logger.debug(
+ `Sending response from ${this.config.id} to ${remotePeerId}: event=${protocol}, messageType=${messageType};`,
+ );
+ const stream = this.getSessionStream(operationId, keywordUuid, remotePeerId);
+
+ if (!stream) {
+ throw Error(`Unable to find opened stream for remotePeerId: ${remotePeerId}`);
+ }
+
+ const response = this.createStreamMessage(message, operationId, keywordUuid, messageType);
+
+ await this._sendMessageToStream(stream, response);
+ }
+
+ // updateReceiverSession(header) {
+ // // if BUSY we expect same request, so don't update session
+ // if (header.messageType === constants.NETWORK_MESSAGE_TYPES.RESPONSES.BUSY) return;
+ // // if NACK we don't expect other requests, so delete session
+ // if (header.messageType === constants.NETWORK_MESSAGE_TYPES.RESPONSES.NACK) {
+ // if (header.sessionId) delete this.sessions.receiver[header.sessionId];
+ // return;
+ // }
+ //
+ // // if session is new, initialise array of expected message types
+ // if (!this.sessions.receiver[header.sessionId].expectedMessageTypes) {
+ // this.sessions.receiver[header.sessionId].expectedMessageTypes = Object.keys(
+ // constants.NETWORK_MESSAGE_TYPES.REQUESTS,
+ // );
+ // }
+ //
+ // // subroutine completed
+ // if (header.messageType === constants.NETWORK_MESSAGE_TYPES.RESPONSES.ACK) {
+ // // protocol operation completed, delete session
+ // if (this.sessions.receiver[header.sessionId].expectedMessageTypes.length <= 1) {
+ // this.removeSession(header.sessionId);
+ // } else {
+ // // operation not completed, update array of expected message types
+ // this.sessions.receiver[header.sessionId].expectedMessageTypes =
+ // this.sessions.receiver[header.sessionId].expectedMessageTypes.slice(1);
+ // }
+ // }
+ // }
+
+ async _sendMessageToStream(stream, message) {
+ const stringifiedHeader = JSON.stringify(message.header);
+ const stringifiedData = JSON.stringify(message.data);
+
+ const chunks = [stringifiedHeader];
+ const chunkSize = 1024 * 1024; // 1 MB
+
+ // split data into 1 MB chunks
+ for (let i = 0; i < stringifiedData.length; i += chunkSize) {
+ chunks.push(stringifiedData.slice(i, i + chunkSize));
+ }
+
+ await pipe(
+ chunks,
+ // turn strings into buffers
+ (source) => map(source, (string) => Buffer.from(string)),
+ // Encode with length prefix (so receiving side knows how much data is coming)
+ lp.encode(),
+ // Write to the stream (the sink)
+ stream.sink,
+ );
+ }
+
+ async _readMessageFromStream(stream, isMessageValid, remotePeerId) {
+ return pipe(
+ // Read from the stream (the source)
+ stream.source,
+ // Decode length-prefixed data
+ lp.decode(),
+ // Turn buffers into strings
+ (source) => map(source, (buf) => buf.toString()),
+ // Sink function
+ (source) => this.readMessageSink(source, isMessageValid, remotePeerId),
+ );
+ }
+
+ async readMessageSink(source, isMessageValid, remotePeerId) {
+ const message = {};
+ let stringifiedData = '';
+ // we expect first buffer to be header
+ const stringifiedHeader = (await source.next()).value;
+ message.header = JSON.parse(stringifiedHeader);
+
+ // validate request / response
+ if (!(await isMessageValid(message.header, remotePeerId))) {
+ return { message, valid: false };
+ }
+
+ // business check if PROTOCOL_INIT message
+ if (
+ message.header.messageType === constants.NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT &&
+ this.isBusy()
+ ) {
+ return { message, valid: true, busy: true };
+ }
+
+ // read data the data
+ for await (const chunk of source) {
+ stringifiedData += chunk;
+ }
+ message.data = JSON.parse(stringifiedData);
+
+ return { message, valid: true, busy: false };
+ }
+
+ async isRequestValid(header, remotePeerId) {
+ // filter spam requests
+ if (await this.limitRequest(header, remotePeerId)) return false;
+
+ // header well formed
+ if (
+ !header.operationId ||
+ !header.keywordUuid ||
+ !header.messageType ||
+ !Object.keys(constants.NETWORK_MESSAGE_TYPES.REQUESTS).includes(header.messageType)
+ )
+ return false;
+ if (header.messageType === constants.NETWORK_MESSAGE_TYPES.REQUESTS.PROTOCOL_INIT) {
+ return true;
+ }
+
+ return this.sessionExists(remotePeerId, header.operationId, header.keywordUuid);
+ }
+
+ sessionExists() {
+ return true;
+ // return this.sessions[remotePeerId._idB58String] && this.sessions[remotePeerId._idB58String][operationId];
+ }
+
+ async isResponseValid() {
+ return true;
+ // return (
+ // header.operationId &&
+ // header.messageType &&
+ // this.sessions[remotePeerId][header.operationId] &&
+ // Object.keys(constants.NETWORK_MESSAGE_TYPES.RESPONSES).includes(header.messageType)
+ // );
+ }
+
+ removeSession(sessionId) {
+ if (this.sessions.sender[sessionId]) {
+ delete this.sessions.sender[sessionId];
+ } else if (this.sessions.receiver[sessionId]) {
+ delete this.sessions.receiver[sessionId];
+ }
+ }
+
+ healthCheck() {
+ // TODO: broadcast ping or sent msg to yourself
+ const connectedNodes = this.node.connectionManager.size;
+ if (connectedNodes > 0) return true;
+ return false;
+ }
+
+ async limitRequest(header, remotePeerId) {
+ // if (header.sessionId && this.sessions.receiver[header.sessionId]) return false;
+
+ if (this.blackList[remotePeerId]) {
+ const remainingMinutes = Math.floor(
+ constants.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES -
+ (Date.now() - this.blackList[remotePeerId]) / (1000 * 60),
+ );
+
+ if (remainingMinutes > 0) {
+ this.logger.debug(
+ `Blocking request from ${remotePeerId}. Node is blacklisted for ${remainingMinutes} minutes.`,
+ );
+
+ return true;
+ }
+ delete this.blackList[remotePeerId];
+
+ }
+
+ if (await this.rateLimiter.spamDetection.limit(remotePeerId)) {
+ this.blackList[remotePeerId] = Date.now();
+ this.logger.debug(
+ `Blocking request from ${remotePeerId}. Spammer detected and blacklisted for ${constants.NETWORK_API_BLACK_LIST_TIME_WINDOW_MINUTES} minutes.`,
+ );
+
+ return true;
+ } if (await this.rateLimiter.basicRateLimiter.limit(remotePeerId)) {
+ this.logger.debug(
+ `Blocking request from ${remotePeerId}. Max number of requests exceeded.`,
+ );
+
+ return true;
+ }
+
+ return false;
+ }
+
+ isBusy() {
+ const distinctOperations = new Set();
+ for (const peerId in this.sessions) {
+ for (const operationId in Object.keys(this.sessions[peerId])) {
+ distinctOperations.add(operationId);
+ }
+ }
+ return toobusy(); // || distinctOperations.size > constants.MAX_OPEN_SESSIONS;
+ }
+
+ getPrivateKey() {
+ return this.config.privateKey;
+ }
+
+ getName() {
+ return 'Libp2p';
+ }
+}
+
+module.exports = Libp2pService;
diff --git a/src/modules/network/network-module-manager.js b/src/modules/network/network-module-manager.js
new file mode 100644
index 000000000..d1e47afbf
--- /dev/null
+++ b/src/modules/network/network-module-manager.js
@@ -0,0 +1,90 @@
+const BaseModuleManager = require('../base-module-manager');
+
+class NetworkModuleManager extends BaseModuleManager {
+ getName() {
+ return 'network';
+ }
+
+ async findNodes(key, protocol) {
+ if (this.initialized) {
+ return this.getImplementation().module.findNodes(key, protocol);
+ }
+ }
+
+ getPeers() {
+ if (this.initialized) {
+ return this.getImplementation().module.getPeers();
+ }
+ }
+
+ /**
+ * Store the given key/value pair at the peer `target`.
+ *
+ * @param {String} key
+ * @param {Object} object - value to be stored
+ * @param {PeerId} target
+ */
+ store(peer, key, object) {
+ if (this.initialized) {
+ return this.getImplementation().module.store(peer, key, object);
+ }
+ }
+
+ async sendMessage(protocol, remotePeerId, messageType, operationId, keyword, message) {
+ if (this.initialized) {
+ return this.getImplementation().module.sendMessage(
+ protocol,
+ remotePeerId,
+ messageType,
+ operationId,
+ keyword,
+ message,
+ );
+ }
+ }
+
+ async sendMessageResponse(protocol, remotePeerId, messageType, operationId, keyword, message) {
+ if (this.initialized) {
+ return this.getImplementation().module.sendMessageResponse(
+ protocol,
+ remotePeerId,
+ messageType,
+ operationId,
+ keyword,
+ message,
+ );
+ }
+ }
+
+ handleMessage(protocol, handler, options) {
+ if (this.initialized) {
+ this.getImplementation().module.handleMessage(protocol, handler, options);
+ }
+ }
+
+ removeSession(sessionId) {
+ if (this.initialized) {
+ this.getImplementation().module.removeSession(sessionId);
+ }
+ }
+
+ getPeerId() {
+ if (this.initialized) {
+ return this.getImplementation().module.getPeerId();
+ }
+ }
+
+ getPrivateKey() {
+ if (this.initialized) {
+ return this.getImplementation().module.getPrivateKey();
+ }
+ }
+
+ async healthCheck() {
+ if (this.initialized) {
+ return this.getImplementation().module.healthCheck();
+ }
+ }
+}
+
+module.exports = NetworkModuleManager;
diff --git a/src/modules/protocol-singleton-module/implementation/protocol-singleton.js b/src/modules/protocol-singleton-module/implementation/protocol-singleton.js
new file mode 100644
index 000000000..9d462011d
--- /dev/null
+++ b/src/modules/protocol-singleton-module/implementation/protocol-singleton.js
@@ -0,0 +1,3 @@
+class ProtocolSingleton {}
+
+module.exports = ProtocolSingleton;
diff --git a/src/modules/protocol-singleton-module/protocol-singleton-module-manager.js b/src/modules/protocol-singleton-module/protocol-singleton-module-manager.js
new file mode 100644
index 000000000..aaf84f280
--- /dev/null
+++ b/src/modules/protocol-singleton-module/protocol-singleton-module-manager.js
@@ -0,0 +1,6 @@
+const BaseModuleManager = require('../base-module-manager');
+
+class ProtocolSingletonModuleManager extends BaseModuleManager {
+}
+
+module.exports = ProtocolSingletonModuleManager;
diff --git a/src/modules/repository/implementation/sequelize/migrations/20211117005500-create-commands.js b/src/modules/repository/implementation/sequelize/migrations/20211117005500-create-commands.js
index faaeb2c1a..df54e2085 100644
--- a/src/modules/repository/implementation/sequelize/migrations/20211117005500-create-commands.js
+++ b/src/modules/repository/implementation/sequelize/migrations/20211117005500-create-commands.js
@@ -43,7 +43,7 @@ module.exports = {
allowNull: false,
},
message: {
- type: Sequelize.STRING,
+ type: Sequelize.TEXT('long'),
allowNull: true,
},
parent_id: {
@@ -55,7 +55,7 @@ module.exports = {
allowNull: true,
},
transactional: {
- type: Sequelize.INTEGER,
+ type: Sequelize.BOOLEAN,
allowNull: false,
},
created_at: {
@@ -70,7 +70,7 @@ module.exports = {
},
});
},
- down: async (queryInterface, Sequelize) => {
+ down: async (queryInterface) => {
await queryInterface.dropTable('commands');
},
};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20211117005504-create-handler_ids.js b/src/modules/repository/implementation/sequelize/migrations/20211117005504-create-handler_ids.js
deleted file mode 100644
index 9f717910f..000000000
--- a/src/modules/repository/implementation/sequelize/migrations/20211117005504-create-handler_ids.js
+++ /dev/null
@@ -1,31 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.createTable('handler_ids', {
- handler_id: {
- allowNull: false,
- primaryKey: true,
- type: Sequelize.STRING,
- },
- data: {
- allowNull: true,
- type: Sequelize.TEXT,
- },
- status: {
- allowNull: false,
- type: Sequelize.STRING,
- },
- timestamp: {
- type: Sequelize.BIGINT,
- },
- created_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- updated_at: {
- allowNull: false,
- type: Sequelize.DATE,
- defaultValue: Sequelize.literal('NOW()'),
- },
- }),
- down: (queryInterface, Sequelize) => queryInterface.dropTable('handler_ids'),
-};
diff --git a/migrations/20211117005501-create-assertions.js b/src/modules/repository/implementation/sequelize/migrations/20211117005504-create-operation_ids.js
similarity index 61%
rename from migrations/20211117005501-create-assertions.js
rename to src/modules/repository/implementation/sequelize/migrations/20211117005504-create-operation_ids.js
index 63b19534b..9a44c483e 100644
--- a/migrations/20211117005501-create-assertions.js
+++ b/src/modules/repository/implementation/sequelize/migrations/20211117005504-create-operation_ids.js
@@ -1,20 +1,22 @@
module.exports = {
- up: async (queryInterface, Sequelize) => {
- await queryInterface.createTable('assertions', {
- hash: {
- type: Sequelize.STRING,
- primaryKey: true,
+ up: (queryInterface, Sequelize) =>
+ queryInterface.createTable('operation_ids', {
+ operation_id: {
allowNull: false,
- },
- owner: {
+ primaryKey: true,
type: Sequelize.STRING,
},
- signature: {
+ data: {
+ allowNull: true,
type: Sequelize.TEXT,
},
- topics: {
+ status: {
+ allowNull: false,
type: Sequelize.STRING,
},
+ timestamp: {
+ type: Sequelize.BIGINT,
+ },
created_at: {
allowNull: false,
type: Sequelize.DATE,
@@ -25,9 +27,6 @@ module.exports = {
type: Sequelize.DATE,
defaultValue: Sequelize.literal('NOW()'),
},
- });
- },
- down: async (queryInterface, Sequelize) => {
- await queryInterface.dropTable('assertions');
- },
+ }),
+ down: (queryInterface) => queryInterface.dropTable('operation_ids'),
};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20211117005505-update-handler_ids.js b/src/modules/repository/implementation/sequelize/migrations/20211117005505-update-handler_ids.js
deleted file mode 100644
index c8496e81a..000000000
--- a/src/modules/repository/implementation/sequelize/migrations/20211117005505-update-handler_ids.js
+++ /dev/null
@@ -1,18 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => queryInterface.changeColumn(
- 'handler_ids',
- 'data',
- {
- type: Sequelize.TEXT('long'),
- allowNull: true,
- },
- ),
- down: (queryInterface, Sequelize) => queryInterface.changeColumn(
- 'handler_ids',
- 'data',
- {
- type: Sequelize.TEXT,
- allowNull: true,
- },
- ),
-};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220406102807-update-assertions.js b/src/modules/repository/implementation/sequelize/migrations/20220406102807-update-assertions.js
deleted file mode 100644
index cb867e9ff..000000000
--- a/src/modules/repository/implementation/sequelize/migrations/20220406102807-update-assertions.js
+++ /dev/null
@@ -1,29 +0,0 @@
-module.exports = {
- up: (queryInterface, Sequelize) => {
- return Promise.all([queryInterface.addColumn(
- 'assertions',
- 'triple_store',
- {
- type: Sequelize.STRING,
- allowNull: true,
- }
- ),
- queryInterface.addColumn(
- 'assertions',
- 'status',
- {
- type: Sequelize.STRING,
- allowNull: true,
- }
- )])},
-
- down: (queryInterface, Sequelize) => {
- return Promise.all([queryInterface.removeColumn(
- 'assertions',
- 'triple_store',
- ),
- queryInterface.removeColumn(
- 'assertions',
- 'status',
- )])}
-};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20211117005501-create-assertions.js b/src/modules/repository/implementation/sequelize/migrations/20220620100000-create-publish.js
similarity index 60%
rename from src/modules/repository/implementation/sequelize/migrations/20211117005501-create-assertions.js
rename to src/modules/repository/implementation/sequelize/migrations/20220620100000-create-publish.js
index 63b19534b..b14df7ce4 100644
--- a/src/modules/repository/implementation/sequelize/migrations/20211117005501-create-assertions.js
+++ b/src/modules/repository/implementation/sequelize/migrations/20220620100000-create-publish.js
@@ -1,18 +1,17 @@
module.exports = {
up: async (queryInterface, Sequelize) => {
- await queryInterface.createTable('assertions', {
- hash: {
- type: Sequelize.STRING,
+ await queryInterface.createTable('publish', {
+ id: {
+ type: Sequelize.INTEGER,
primaryKey: true,
- allowNull: false,
- },
- owner: {
- type: Sequelize.STRING,
+ autoIncrement: true,
},
- signature: {
- type: Sequelize.TEXT,
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
},
- topics: {
+ status: {
+ allowNull: false,
type: Sequelize.STRING,
},
created_at: {
@@ -27,7 +26,7 @@ module.exports = {
},
});
},
- down: async (queryInterface, Sequelize) => {
- await queryInterface.dropTable('assertions');
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('publish');
},
};
diff --git a/migrations/20211117005502-create-jobs.js b/src/modules/repository/implementation/sequelize/migrations/20220620100005-create-publish-response.js
similarity index 59%
rename from migrations/20211117005502-create-jobs.js
rename to src/modules/repository/implementation/sequelize/migrations/20220620100005-create-publish-response.js
index 8550dcd60..2fd1680b8 100644
--- a/migrations/20211117005502-create-jobs.js
+++ b/src/modules/repository/implementation/sequelize/migrations/20220620100005-create-publish-response.js
@@ -1,27 +1,25 @@
module.exports = {
up: async (queryInterface, Sequelize) => {
- await queryInterface.createTable('jobs', {
+ await queryInterface.createTable('publish_response', {
id: {
- allowNull: false,
+ type: Sequelize.INTEGER,
primaryKey: true,
- type: Sequelize.STRING,
+ autoIncrement: true,
},
- publisher: {
- type: Sequelize.STRING,
- },
- assertion_hash: {
- type: Sequelize.STRING,
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
},
- tx_hash: {
+ keyword: {
+ allowNull: false,
type: Sequelize.STRING,
},
- signature: {
- type: Sequelize.TEXT,
- },
- blockchain_id: {
+ status: {
+ allowNull: false,
type: Sequelize.STRING,
},
- published_to: {
+ message: {
+ allowNull: true,
type: Sequelize.TEXT,
},
created_at: {
@@ -36,7 +34,7 @@ module.exports = {
},
});
},
- down: async (queryInterface, Sequelize) => {
- await queryInterface.dropTable('jobs');
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('publish_response');
},
};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220623125000-create-get.js b/src/modules/repository/implementation/sequelize/migrations/20220623125000-create-get.js
new file mode 100644
index 000000000..b84a7d93b
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220623125000-create-get.js
@@ -0,0 +1,32 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('get', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('get');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220623125001-create-get-response.js b/src/modules/repository/implementation/sequelize/migrations/20220623125001-create-get-response.js
new file mode 100644
index 000000000..c50bf0587
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220623125001-create-get-response.js
@@ -0,0 +1,40 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('get_response', {
+ id: {
+ type: Sequelize.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
+ },
+ keyword: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ status: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ },
+ message: {
+ allowNull: true,
+ type: Sequelize.TEXT,
+ },
+ created_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: false,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('get_response');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20211117005502-create-jobs.js b/src/modules/repository/implementation/sequelize/migrations/20220624020509-create-event.js
similarity index 59%
rename from src/modules/repository/implementation/sequelize/migrations/20211117005502-create-jobs.js
rename to src/modules/repository/implementation/sequelize/migrations/20220624020509-create-event.js
index 8550dcd60..c697e2d33 100644
--- a/src/modules/repository/implementation/sequelize/migrations/20211117005502-create-jobs.js
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624020509-create-event.js
@@ -1,28 +1,34 @@
module.exports = {
up: async (queryInterface, Sequelize) => {
- await queryInterface.createTable('jobs', {
+ await queryInterface.createTable('event', {
id: {
- allowNull: false,
+ type: Sequelize.INTEGER,
primaryKey: true,
- type: Sequelize.STRING,
+ autoIncrement: true,
},
- publisher: {
- type: Sequelize.STRING,
+ operation_id: {
+ type: Sequelize.UUID,
+ allowNull: false,
},
- assertion_hash: {
+ name: {
+ allowNull: false,
type: Sequelize.STRING,
},
- tx_hash: {
+ timestamp: {
+ allowNull: false,
type: Sequelize.STRING,
},
- signature: {
- type: Sequelize.TEXT,
+ value1: {
+ allowNull: true,
+ type: Sequelize.STRING,
},
- blockchain_id: {
+ value2: {
+ allowNull: true,
type: Sequelize.STRING,
},
- published_to: {
- type: Sequelize.TEXT,
+ value3: {
+ allowNull: true,
+ type: Sequelize.STRING,
},
created_at: {
allowNull: false,
@@ -36,7 +42,7 @@ module.exports = {
},
});
},
- down: async (queryInterface, Sequelize) => {
- await queryInterface.dropTable('jobs');
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('event');
},
};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220624103229-create-ability.js b/src/modules/repository/implementation/sequelize/migrations/20220624103229-create-ability.js
new file mode 100644
index 000000000..3598e9dcc
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624103229-create-ability.js
@@ -0,0 +1,29 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('ability', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER,
+ },
+ name: {
+ type: Sequelize.STRING,
+ unique: true,
+ },
+ created_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('ability');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220624103610-create-role.js b/src/modules/repository/implementation/sequelize/migrations/20220624103610-create-role.js
new file mode 100644
index 000000000..b00793cbd
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624103610-create-role.js
@@ -0,0 +1,29 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('role', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER,
+ },
+ name: {
+ type: Sequelize.STRING,
+ unique: true,
+ },
+ created_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('role');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220624103615-create-user.js b/src/modules/repository/implementation/sequelize/migrations/20220624103615-create-user.js
new file mode 100644
index 000000000..13c40469d
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624103615-create-user.js
@@ -0,0 +1,36 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('user', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER,
+ },
+ name: {
+ type: Sequelize.STRING,
+ unique: true,
+ },
+ role_id: {
+ type: Sequelize.INTEGER,
+ references: {
+ model: 'role',
+ key: 'id',
+ },
+ },
+ created_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('user');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220624103658-create-token.js b/src/modules/repository/implementation/sequelize/migrations/20220624103658-create-token.js
new file mode 100644
index 000000000..ae0ad032a
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624103658-create-token.js
@@ -0,0 +1,44 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('token', {
+ id: {
+ allowNull: false,
+ primaryKey: true,
+ type: Sequelize.STRING,
+ },
+ name: {
+ allowNull: false,
+ type: Sequelize.STRING,
+ unique: true,
+ },
+ user_id: {
+ type: Sequelize.INTEGER,
+ references: {
+ model: 'user',
+ key: 'id',
+ },
+ },
+ expires_at: {
+ type: Sequelize.DATE,
+ allowNull: true,
+ },
+ revoked: {
+ type: Sequelize.BOOLEAN,
+ defaultValue: false,
+ },
+ created_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('token');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220624113659-create-role-ability.js b/src/modules/repository/implementation/sequelize/migrations/20220624113659-create-role-ability.js
new file mode 100644
index 000000000..0ce81a409
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220624113659-create-role-ability.js
@@ -0,0 +1,39 @@
+module.exports = {
+ up: async (queryInterface, Sequelize) => {
+ await queryInterface.createTable('role_ability', {
+ id: {
+ allowNull: false,
+ autoIncrement: true,
+ primaryKey: true,
+ type: Sequelize.INTEGER,
+ },
+ ability_id: {
+ type: Sequelize.INTEGER,
+ references: {
+ model: 'ability',
+ key: 'id',
+ },
+ },
+ role_id: {
+ type: Sequelize.INTEGER,
+ references: {
+ model: 'role',
+ key: 'id',
+ },
+ },
+ created_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ updated_at: {
+ allowNull: true,
+ type: Sequelize.DATE,
+ defaultValue: Sequelize.literal('NOW()'),
+ },
+ });
+ },
+ down: async (queryInterface) => {
+ await queryInterface.dropTable('role_ability');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/migrations/20220628113824-add-predefined-auth-entities.js b/src/modules/repository/implementation/sequelize/migrations/20220628113824-add-predefined-auth-entities.js
new file mode 100644
index 000000000..b491d95f0
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/migrations/20220628113824-add-predefined-auth-entities.js
@@ -0,0 +1,78 @@
+const routes = [
+ 'PUBLISH',
+ 'PROVISION',
+ 'UPDATE',
+ 'GET',
+ 'SEARCH',
+ 'SEARCH_ASSERTION',
+ 'QUERY',
+ 'PROOFS',
+ 'OPERATION_RESULT',
+ 'INFO',
+];
+
+module.exports = {
+ up: async (queryInterface) => {
+ const transaction = await queryInterface.sequelize.transaction();
+ try {
+ await queryInterface.bulkInsert(
+ 'ability',
+ routes.map((r) => ({ name: r })),
+ {
+ transaction,
+ },
+ );
+ const [abilities] = await queryInterface.sequelize.query('SELECT id from ability', {
+ transaction,
+ });
+
+ await queryInterface.bulkInsert(
+ 'role',
+ [
+ {
+ name: 'ADMIN',
+ },
+ ],
+ {
+ transaction,
+ },
+ );
+
+ const [[role]] = await queryInterface.sequelize.query(
+ "SELECT id from role where name='ADMIN'",
+ {
+ transaction,
+ },
+ );
+
+ const roleAbilities = abilities.map((e) => ({
+ ability_id: e.id,
+ role_id: role.id,
+ }));
+
+ await queryInterface.bulkInsert('role_ability', roleAbilities, { transaction });
+
+ await queryInterface.bulkInsert(
+ 'user',
+ [
+ {
+ name: 'node-runner',
+ role_id: role.id,
+ },
+ ],
+ { transaction },
+ );
+
+ transaction.commit();
+ } catch (e) {
+ transaction.rollback();
+ throw e;
+ }
+ },
+
+ down: async (queryInterface) => {
+ queryInterface.sequelize.query('TRUNCATE TABLE role_ability;');
+ queryInterface.sequelize.query('TRUNCATE TABLE role;');
+ queryInterface.sequelize.query('TRUNCATE TABLE ability;');
+ },
+};
diff --git a/src/modules/repository/implementation/sequelize/models/ability.js b/src/modules/repository/implementation/sequelize/models/ability.js
new file mode 100644
index 000000000..880a1061c
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/ability.js
@@ -0,0 +1,33 @@
+const { Model } = require('sequelize');
+
+module.exports = (sequelize, DataTypes) => {
+ class Ability extends Model {
+ /**
+ * Helper method for defining associations.
+ * This method is not a part of Sequelize lifecycle.
+ * The `models/index` file will call this method automatically.
+ */
+ static associate() {
+ // define association here
+ }
+ }
+ Ability.init(
+ {
+ name: DataTypes.STRING,
+ createdAt: {
+ type: DataTypes.DATE,
+ field: 'created_at',
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ field: 'updated_at',
+ },
+ },
+ {
+ sequelize,
+ modelName: 'Ability',
+ underscored: true,
+ },
+ );
+ return Ability;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/assertion.js b/src/modules/repository/implementation/sequelize/models/assertion.js
deleted file mode 100644
index c25660952..000000000
--- a/src/modules/repository/implementation/sequelize/models/assertion.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const { Model } = require('sequelize');
-
-module.exports = (sequelize, DataTypes) => {
- class assertions extends Model {
- static associate(models) {
- assertions._models = models;
- // define association here
- }
- }
- assertions.init({
- hash: {
- type: DataTypes.STRING,
- primaryKey: true,
- allowNull: false,
- },
- owner: DataTypes.STRING,
- signature: DataTypes.TEXT,
- topics: DataTypes.STRING,
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- triple_store: {
- type: DataTypes.STRING,
- allowNull: true,
- },
- status: {
- type: DataTypes.STRING,
- allowNull: true,
- },
- }, {
- sequelize,
- modelName: 'assertions',
- });
- return assertions;
-};
diff --git a/src/modules/repository/implementation/sequelize/models/commands.js b/src/modules/repository/implementation/sequelize/models/commands.js
index 3ded96ca2..d415c509d 100644
--- a/src/modules/repository/implementation/sequelize/models/commands.js
+++ b/src/modules/repository/implementation/sequelize/models/commands.js
@@ -23,7 +23,7 @@ module.exports = (sequelize, DataTypes) => {
deadline_at: DataTypes.INTEGER,
period: DataTypes.INTEGER,
status: DataTypes.STRING,
- message: DataTypes.STRING,
+ message: DataTypes.TEXT,
parent_id: DataTypes.UUID,
transactional: DataTypes.BOOLEAN,
retries: {
diff --git a/src/modules/repository/implementation/sequelize/models/event.js b/src/modules/repository/implementation/sequelize/models/event.js
new file mode 100644
index 000000000..4b946d2dc
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/event.js
@@ -0,0 +1,25 @@
+module.exports = (sequelize, DataTypes) => {
+ const event = sequelize.define(
+ 'event',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: DataTypes.UUID,
+ name: DataTypes.STRING,
+ timestamp: DataTypes.STRING,
+ value1: DataTypes.STRING,
+ value2: DataTypes.STRING,
+ value3: DataTypes.STRING,
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ event.associate = () => {
+ // associations can be defined here
+ };
+ return event;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/get-response.js b/src/modules/repository/implementation/sequelize/models/get-response.js
new file mode 100644
index 000000000..b701b8ad0
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/get-response.js
@@ -0,0 +1,23 @@
+module.exports = (sequelize, DataTypes) => {
+ const get_response = sequelize.define(
+ 'get_response',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: DataTypes.UUID,
+ keyword: DataTypes.STRING,
+ status: DataTypes.STRING,
+ message: DataTypes.TEXT,
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ get_response.associate = () => {
+ // associations can be defined here
+ };
+ return get_response;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/get.js b/src/modules/repository/implementation/sequelize/models/get.js
new file mode 100644
index 000000000..fb26bdde0
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/get.js
@@ -0,0 +1,21 @@
+module.exports = (sequelize, DataTypes) => {
+ const get = sequelize.define(
+ 'get',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: DataTypes.UUID,
+ status: DataTypes.STRING,
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ get.associate = () => {
+ // associations can be defined here
+ };
+ return get;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/handler_ids.js b/src/modules/repository/implementation/sequelize/models/handler_ids.js
deleted file mode 100644
index ae3cca011..000000000
--- a/src/modules/repository/implementation/sequelize/models/handler_ids.js
+++ /dev/null
@@ -1,23 +0,0 @@
-const { v4: uuidv4 } = require('uuid');
-
-module.exports = (sequelize, DataTypes) => {
- const handler_ids = sequelize.define('handler_ids', {
- handler_id: {
- type: DataTypes.UUID,
- primaryKey: true,
- defaultValue: () => uuidv4(),
- },
- data: DataTypes.TEXT,
- status: DataTypes.STRING,
- timestamp: {
- type: DataTypes.BIGINT,
- defaultValue: () => Date.now(),
- },
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- }, {});
- handler_ids.associate = (models) => {
- // associations can be defined here
- };
- return handler_ids;
-};
diff --git a/src/modules/repository/implementation/sequelize/models/jobs.js b/src/modules/repository/implementation/sequelize/models/jobs.js
deleted file mode 100644
index c5c4a3294..000000000
--- a/src/modules/repository/implementation/sequelize/models/jobs.js
+++ /dev/null
@@ -1,30 +0,0 @@
-const { Model } = require('sequelize');
-const uuid = require('uuid');
-
-module.exports = (sequelize, DataTypes) => {
- class jobs extends Model {
- static associate(models) {
- jobs._models = models;
- // define association here
- }
- }
- jobs.init({
- id: {
- type: DataTypes.UUID,
- primaryKey: true,
- defaultValue: () => uuid.v4(),
- },
- publisher: DataTypes.STRING,
- assertion_hash: DataTypes.STRING,
- tx_hash: DataTypes.STRING,
- signature: DataTypes.TEXT,
- blockchain_id: DataTypes.STRING,
- published_to: DataTypes.TEXT,
- created_at: DataTypes.DATE,
- updated_at: DataTypes.DATE,
- }, {
- sequelize,
- modelName: 'jobs',
- });
- return jobs;
-};
diff --git a/src/modules/repository/implementation/sequelize/models/operation_ids.js b/src/modules/repository/implementation/sequelize/models/operation_ids.js
new file mode 100644
index 000000000..112a3eb9c
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/operation_ids.js
@@ -0,0 +1,27 @@
+const { v4: uuidv4 } = require('uuid');
+
+module.exports = (sequelize, DataTypes) => {
+ const operation_ids = sequelize.define(
+ 'operation_ids',
+ {
+ operation_id: {
+ type: DataTypes.UUID,
+ primaryKey: true,
+ defaultValue: () => uuidv4(),
+ },
+ data: DataTypes.TEXT,
+ status: DataTypes.STRING,
+ timestamp: {
+ type: DataTypes.BIGINT,
+ defaultValue: () => Date.now(),
+ },
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ operation_ids.associate = () => {
+ // associations can be defined here
+ };
+ return operation_ids;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/publish-response.js b/src/modules/repository/implementation/sequelize/models/publish-response.js
new file mode 100644
index 000000000..06f0601b8
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/publish-response.js
@@ -0,0 +1,23 @@
+module.exports = (sequelize, DataTypes) => {
+ const publish_response = sequelize.define(
+ 'publish_response',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: DataTypes.UUID,
+ keyword: DataTypes.STRING,
+ status: DataTypes.STRING,
+ message: DataTypes.TEXT,
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ publish_response.associate = () => {
+ // associations can be defined here
+ };
+ return publish_response;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/publish.js b/src/modules/repository/implementation/sequelize/models/publish.js
new file mode 100644
index 000000000..72df2db13
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/publish.js
@@ -0,0 +1,21 @@
+module.exports = (sequelize, DataTypes) => {
+ const publish = sequelize.define(
+ 'publish',
+ {
+ id: {
+ type: DataTypes.INTEGER,
+ primaryKey: true,
+ autoIncrement: true,
+ },
+ operation_id: DataTypes.UUID,
+ status: DataTypes.STRING,
+ created_at: DataTypes.DATE,
+ updated_at: DataTypes.DATE,
+ },
+ {},
+ );
+ publish.associate = () => {
+ // associations can be defined here
+ };
+ return publish;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/role-ability.js b/src/modules/repository/implementation/sequelize/models/role-ability.js
new file mode 100644
index 000000000..d806544cb
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/role-ability.js
@@ -0,0 +1,34 @@
+const { Model } = require('sequelize');
+
+module.exports = (sequelize, DataTypes) => {
+ class RoleAbility extends Model {
+ /**
+ * Helper method for defining associations.
+ * This method is not a part of Sequelize lifecycle.
+ * The `models/index` file will call this method automatically.
+ */
+ static associate(models) {
+ RoleAbility.hasOne(models.Ability, { as: 'ability' });
+ RoleAbility.hasOne(models.Role, { as: 'role' });
+ }
+ }
+
+ RoleAbility.init(
+ {
+ createdAt: {
+ type: DataTypes.DATE,
+ field: 'created_at',
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ field: 'updated_at',
+ },
+ },
+ {
+ sequelize,
+ modelName: 'RoleAbility',
+ underscored: true,
+ },
+ );
+ return RoleAbility;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/role.js b/src/modules/repository/implementation/sequelize/models/role.js
new file mode 100644
index 000000000..2ee2f8f5e
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/role.js
@@ -0,0 +1,37 @@
+const { Model } = require('sequelize');
+
+module.exports = (sequelize, DataTypes) => {
+ class Role extends Model {
+ /**
+ * Helper method for defining associations.
+ * This method is not a part of Sequelize lifecycle.
+ * The `models/index` file will call this method automatically.
+ */
+ static associate(models) {
+ Role.belongsToMany(models.Ability, {
+ as: 'abilities',
+ foreignKey: 'ability_id',
+ through: models.RoleAbility,
+ });
+ }
+ }
+ Role.init(
+ {
+ name: DataTypes.STRING,
+ createdAt: {
+ type: DataTypes.DATE,
+ field: 'created_at',
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ field: 'updated_at',
+ },
+ },
+ {
+ sequelize,
+ modelName: 'Role',
+ underscored: true,
+ },
+ );
+ return Role;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/token.js b/src/modules/repository/implementation/sequelize/models/token.js
new file mode 100644
index 000000000..7cf92e64b
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/token.js
@@ -0,0 +1,45 @@
+const { Model } = require('sequelize');
+
+module.exports = (sequelize, DataTypes) => {
+ class Token extends Model {
+ /**
+ * Helper method for defining associations.
+ * This method is not a part of Sequelize lifecycle.
+ * The `models/index` file will call this method automatically.
+ */
+ static associate(models) {
+ Token.belongsTo(models.User, { as: 'user' });
+ }
+ }
+ Token.init(
+ {
+ id: { type: DataTypes.STRING, primaryKey: true },
+ revoked: DataTypes.BOOLEAN,
+ userId: {
+ type: DataTypes.INTEGER,
+ field: 'user_id',
+ },
+ name: {
+ type: DataTypes.STRING,
+ },
+ expiresAt: {
+ type: DataTypes.DATE,
+ field: 'expires_at',
+ },
+ createdAt: {
+ type: DataTypes.DATE,
+ field: 'created_at',
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ field: 'updated_at',
+ },
+ },
+ {
+ sequelize,
+ modelName: 'Token',
+ underscored: true,
+ },
+ );
+ return Token;
+};
diff --git a/src/modules/repository/implementation/sequelize/models/user.js b/src/modules/repository/implementation/sequelize/models/user.js
new file mode 100644
index 000000000..7daf0d947
--- /dev/null
+++ b/src/modules/repository/implementation/sequelize/models/user.js
@@ -0,0 +1,37 @@
+const { Model } = require('sequelize');
+
+module.exports = (sequelize, DataTypes) => {
+ class User extends Model {
+ /**
+ * Helper method for defining associations.
+ * This method is not a part of Sequelize lifecycle.
+ * The `models/index` file will call this method automatically.
+ */
+ static associate(models) {
+ User.hasMany(models.Token, { as: 'tokens' });
+ User.hasOne(models.Role, { as: 'role' });
+ }
+ }
+ User.init(
+ {
+ name: {
+ type: DataTypes.STRING,
+ unique: true,
+ },
+ createdAt: {
+ type: DataTypes.DATE,
+ field: 'created_at',
+ },
+ updatedAt: {
+ type: DataTypes.DATE,
+ field: 'updated_at',
+ },
+ },
+ {
+ sequelize,
+ modelName: 'User',
+ underscored: true,
+ },
+ );
+ return User;
+};
diff --git a/src/modules/repository/implementation/sequelize/sequelize-repository.js b/src/modules/repository/implementation/sequelize/sequelize-repository.js
index 29a03e34d..22a6d46cc 100644
--- a/src/modules/repository/implementation/sequelize/sequelize-repository.js
+++ b/src/modules/repository/implementation/sequelize/sequelize-repository.js
@@ -3,6 +3,7 @@ const { exec } = require('child_process');
const path = require('path');
const fs = require('fs');
const Sequelize = require('sequelize');
+const { OPERATION_ID_STATUS } = require('../../../../constants/constants');
class SequelizeRepository {
async initialize(config, logger) {
@@ -12,12 +13,17 @@ class SequelizeRepository {
this.setEnvParameters();
await this.createDatabaseIfNotExists();
await this.runMigrations();
+
this.models = await this.loadModels();
}
setEnvParameters() {
process.env.SEQUELIZE_REPOSITORY_USER = this.config.user;
- process.env.SEQUELIZE_REPOSITORY_PASSWORD = this.config.password;
+ const useEnvPassword =
+ process.env.REPOSITORY_PASSWORD && process.env.REPOSITORY_PASSWORD !== '';
+ process.env.SEQUELIZE_REPOSITORY_PASSWORD = useEnvPassword
+ ? process.env.REPOSITORY_PASSWORD
+ : this.config.password;
process.env.SEQUELIZE_REPOSITORY_DATABASE = this.config.database;
process.env.SEQUELIZE_REPOSITORY_HOST = this.config.host;
process.env.SEQUELIZE_REPOSITORY_PORT = this.config.port;
@@ -25,20 +31,25 @@ class SequelizeRepository {
}
async createDatabaseIfNotExists() {
- const connection = mysql.createConnection({
- host: this.config.host,
- port: this.config.port,
- user: this.config.user,
- password: this.config.password,
+ const connection = await mysql.createConnection({
+ host: process.env.SEQUELIZE_REPOSITORY_HOST,
+ port: process.env.SEQUELIZE_REPOSITORY_PORT,
+ user: process.env.SEQUELIZE_REPOSITORY_USER,
+ password: process.env.SEQUELIZE_REPOSITORY_PASSWORD,
});
- connection.query(`CREATE DATABASE IF NOT EXISTS \`${this.config.database}\`;`);
+ // todo remove drop!!!
+ // await connection.promise().query(`DROP DATABASE IF EXISTS \`${this.config.database}\`;`);
+ await connection
+ .promise()
+ .query(`CREATE DATABASE IF NOT EXISTS \`${this.config.database}\`;`);
}
async runMigrations() {
return new Promise((resolve, reject) => {
const configurationPath = path.join(__dirname, 'config', 'sequelizeConfig.js');
+ const migrationFolderPath = path.join(__dirname, 'migrations');
const migrate = exec(
- `npx sequelize --config=${configurationPath} db:migrate`,
+ `npx sequelize --config=${configurationPath} --migrations-path=${migrationFolderPath} db:migrate`,
{ env: process.env },
(err) => (err ? reject(err) : resolve()),
);
@@ -55,15 +66,16 @@ class SequelizeRepository {
// disable automatic timestamps
this.config.define = {
timestamps: false,
+ freezeTableName: true,
};
const sequelize = new Sequelize(
- this.config.database,
- this.config.user,
- this.config.password,
+ process.env.SEQUELIZE_REPOSITORY_DATABASE,
+ process.env.SEQUELIZE_REPOSITORY_USER,
+ process.env.SEQUELIZE_REPOSITORY_PASSWORD,
this.config,
);
const models = {};
- fs.readdirSync(modelsDirectory)
+ (await fs.promises.readdir(modelsDirectory))
.filter((file) => file.indexOf('.') !== 0 && file.slice(-3) === '.js')
.forEach((file) => {
// eslint-disable-next-line global-require,import/no-dynamic-require
@@ -85,8 +97,237 @@ class SequelizeRepository {
return models;
}
- async createHandlerIdRecord(handlerData) {
- await this.models.handler_ids.create(handlerData);
+ transaction(execFn) {
+ return this.models.sequelize.transaction(async (t) => execFn(t));
+ }
+
+ // COMMAND
+ async updateCommand(update, opts) {
+ await this.models.commands.update(update, opts);
+ }
+
+ async destroyCommand(name) {
+ await this.models.commands.destroy({
+ where: {
+ name: { [Sequelize.Op.eq]: name },
+ },
+ });
+ }
+
+ async createCommand(command, opts) {
+ return this.models.commands.create(command, opts);
+ }
+
+ async getCommandsWithStatus(statusArray, excludeNameArray) {
+ return this.models.commands.findAll({
+ where: {
+ status: {
+ [Sequelize.Op.in]: statusArray,
+ },
+ name: { [Sequelize.Op.notIn]: excludeNameArray },
+ },
+ });
+ }
+
+ async getCommandWithId(id) {
+ return this.models.commands.findOne({
+ where: {
+ id,
+ },
+ });
+ }
+
+ // OPERATION_ID
+ async createOperationIdRecord(handlerData) {
+ const handlerRecord = await this.models.operation_ids.create(handlerData);
+ return handlerRecord;
+ }
+
+ async getOperationIdRecord(operationId) {
+ const handlerRecord = await this.models.operation_ids.findOne({
+ where: {
+ operation_id: operationId,
+ },
+ });
+ return handlerRecord;
+ }
+
+ async updateOperationIdRecord(data, operationId) {
+ await this.models.operation_ids.update(data, {
+ where: {
+ operation_id: operationId,
+ },
+ });
+ }
+
+ async getNumberOfNodesFoundForPublish(publishId) {
+ return this.models.publish.findOne({
+ attributes: ['nodes_found'],
+ where: {
+ id: publishId,
+ },
+ });
+ }
+
+ async createOperationRecord(operation, operationId, status) {
+ return this.models[operation].create({
+ operation_id: operationId,
+ status,
+ });
+ }
+
+ async getOperationStatus(operation, operationId) {
+ return this.models[operation].findOne({
+ attributes: ['status'],
+ where: {
+ operation_id: operationId,
+ },
+ });
+ }
+
+ async updateOperationStatus(operation, operationId, status) {
+ await this.models[operation].update(
+ { status },
+ {
+ where: {
+ operation_id: operationId,
+ },
+ },
+ );
+ }
+
+ async createOperationResponseRecord(status, operation, operationId, keyword, message) {
+ await this.models[`${operation}_response`].create({
+ status,
+ message,
+ operation_id: operationId,
+ keyword,
+ });
+ }
+
+ async getNumberOfOperationResponses(operation, operationId) {
+ return this.models[`${operation}_response`].count({
+ where: {
+ operation_id: operationId,
+ },
+ });
+ }
+
+ async getOperationResponsesStatuses(operation, operationId) {
+ return this.models[`${operation}_response`].findAll({
+ attributes: ['status', 'keyword'],
+ where: {
+ operation_id: operationId,
+ },
+ });
+ }
+
+ async countOperationResponseStatuses(operation, operationId) {
+ return this.models[`${operation}_response`].findAll({
+ attributes: [
+ 'status',
+ [Sequelize.fn('COUNT', Sequelize.col('status')), 'count_status'],
+ ],
+ group: 'status',
+ where: {
+ operation_id: operationId,
+ },
+ });
+ }
+
+ // EVENT
+ async createEventRecord(operationId, name, timestamp, value1, value2, value3) {
+ return this.models.event.create({
+ operation_id: operationId,
+ name,
+ timestamp,
+ value1,
+ value2,
+ value3,
+ });
+ }
+
+ async getUnpublishedEvents() {
+ // events without COMPLETE/FAILED status which are older than 30min
+ // are also considered finished
+ const minutes = 5;
+
+ let operationIds = await this.models.event.findAll({
+ raw: true,
+ attributes: [Sequelize.fn('DISTINCT', Sequelize.col('operation_id'))],
+ where: {
+ [Sequelize.Op.or]: {
+ name: {
+ [Sequelize.Op.in]: [
+ OPERATION_ID_STATUS.COMPLETED,
+ OPERATION_ID_STATUS.FAILED,
+ ],
+ },
+ timestamp: {
+ [Sequelize.Op.lt]: Sequelize.literal(
+ `(UNIX_TIMESTAMP()*1000 - 1000*60*${minutes})`,
+ ),
+ },
+ },
+ },
+ });
+
+ operationIds = operationIds.map((e) => e.operation_id);
+
+ return this.models.event.findAll({
+ where: {
+ operation_id: {
+ [Sequelize.Op.in]: operationIds,
+ },
+ },
+ });
+ }
+
+ async destroyEvents(ids) {
+ await this.models.event.destroy({
+ where: {
+ id: {
+ [Sequelize.Op.in]: ids,
+ },
+ },
+ });
+ }
+
+ async getUser(username) {
+ return this.models.User.findOne({
+ where: {
+ name: username,
+ },
+ });
+ }
+
+ async saveToken(tokenId, userId, tokenName, expiresAt) {
+ return this.models.Token.create({
+ id: tokenId,
+ userId,
+ expiresAt,
+ name: tokenName,
+ });
+ }
+
+ async isTokenRevoked(tokenId) {
+ const token = await this.models.Token.findByPk(tokenId);
+
+ return token && token.revoked;
+ }
+
+ async getTokenAbilities(tokenId) {
+ const abilities = await this.models.sequelize.query(
+ `SELECT a.name FROM token t
+INNER JOIN user u ON t.user_id = u.id
+INNER JOIN role r ON u.role_id = u.id
+INNER JOIN role_ability ra on r.id = ra.role_id
+INNER JOIN ability a on ra.ability_id = a.id
+WHERE t.id=$tokenId;`,
+ { bind: { tokenId }, type: Sequelize.QueryTypes.SELECT },
+ );
+
+ return abilities.map((e) => e.name);
}
}
diff --git a/src/modules/repository/repository-module-manager.js b/src/modules/repository/repository-module-manager.js
index 5ed749a9d..1c217d541 100644
--- a/src/modules/repository/repository-module-manager.js
+++ b/src/modules/repository/repository-module-manager.js
@@ -5,9 +5,185 @@ class RepositoryModuleManager extends BaseModuleManager {
return 'repository';
}
- async createHandlerIdRecord(handlerData) {
+ transaction(execFn) {
if (this.initialized) {
- return this.getImplementation().module.createHandlerIdRecord(handlerData);
+ return this.getImplementation().module.transaction(execFn);
+ }
+ }
+
+ // COMMANDS
+ async updateCommand(update, opts) {
+ if (this.initialized) {
+ return this.getImplementation().module.updateCommand(update, opts);
+ }
+ }
+
+ async destroyCommand(name) {
+ if (this.initialized) {
+ return this.getImplementation().module.destroyCommand(name);
+ }
+ }
+
+ async createCommand(command, opts) {
+ if (this.initialized) {
+ return this.getImplementation().module.createCommand(command, opts);
+ }
+ }
+
+ async getCommandsWithStatus(statusArray, excludeNameArray = []) {
+ if (this.initialized) {
+ return this.getImplementation().module.getCommandsWithStatus(
+ statusArray,
+ excludeNameArray,
+ );
+ }
+ }
+
+ async getCommandWithId(id) {
+ if (this.initialized) {
+ return this.getImplementation().module.getCommandWithId(id);
+ }
+ }
+
+ // OPERATION ID TABLE
+ async createOperationIdRecord(handlerData) {
+ if (this.initialized) {
+ return this.getImplementation().module.createOperationIdRecord(handlerData);
+ }
+ }
+
+ async updateOperationIdRecord(data, operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.updateOperationIdRecord(data, operationId);
+ }
+ }
+
+ async getOperationIdRecord(operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.getOperationIdRecord(operationId);
+ }
+ }
+
+ // publish table
+ async createOperationRecord(operation, operationId, status) {
+ if (this.initialized) {
+ return this.getImplementation().module.createOperationRecord(
+ operation,
+ operationId,
+ status,
+ );
+ }
+ }
+
+ async getOperationStatus(operation, operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.getOperationStatus(operation, operationId);
+ }
+ }
+
+ async updateOperationStatus(operation, operationId, status) {
+ if (this.initialized) {
+ return this.getImplementation().module.updateOperationStatus(
+ operation,
+ operationId,
+ status,
+ );
+ }
+ }
+
+ async createOperationResponseRecord(status, operation, operationId, keyword, errorMessage) {
+ if (this.initialized) {
+ return this.getImplementation().module.createOperationResponseRecord(
+ status,
+ operation,
+ operationId,
+ keyword,
+ errorMessage,
+ );
+ }
+ }
+
+ async getNumberOfOperationResponses(operation, operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.getNumberOfOperationResponses(
+ operation,
+ operationId,
+ );
+ }
+ }
+
+ async getOperationResponsesStatuses(operation, operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.getOperationResponsesStatuses(
+ operation,
+ operationId,
+ );
+ }
+ }
+
+ async countOperationResponseStatuses(operation, operationId) {
+ if (this.initialized) {
+ return this.getImplementation().module.countOperationResponseStatuses(
+ operation,
+ operationId,
+ );
+ }
+ }
+
+ // EVENT
+ async createEventRecord(
+ operationId,
+ name,
+ timestamp,
+ value1 = null,
+ value2 = null,
+ value3 = null,
+ ) {
+ if (this.initialized) {
+ return this.getImplementation().module.createEventRecord(
+ operationId,
+ name,
+ timestamp,
+ value1,
+ value2,
+ value3,
+ );
+ }
+ }
+
+ async getUnpublishedEvents() {
+ if (this.initialized) {
+ return this.getImplementation().module.getUnpublishedEvents();
+ }
+ }
+
+ async destroyEvents(ids) {
+ if (this.initialized) {
+ return this.getImplementation().module.destroyEvents(ids);
+ }
+ }
+
+ async getUser(username) {
+ if (this.initialized) {
+ return this.getImplementation().module.getUser(username);
+ }
+ }
+
+ async saveToken(tokenId, userId, tokenName, expiresAt) {
+ if (this.initialized) {
+ return this.getImplementation().module.saveToken(tokenId, userId, tokenName, expiresAt);
+ }
+ }
+
+ async isTokenRevoked(tokenId) {
+ if (this.initialized) {
+ return this.getImplementation().module.isTokenRevoked(tokenId);
+ }
+ }
+
+ async getTokenAbilities(tokenId) {
+ if (this.initialized) {
+ return this.getImplementation().module.getTokenAbilities(tokenId);
}
}
}
diff --git a/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js b/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js
new file mode 100644
index 000000000..d1c160a10
--- /dev/null
+++ b/src/modules/triple-store/implementation/ot-blazegraph/ot-blazegraph.js
@@ -0,0 +1,27 @@
+const axios = require('axios');
+const OtTripleStore = require('../ot-triple-store');
+
+class OtBlazegraph extends OtTripleStore {
+ initializeSparqlEndpoints(url) {
+ this.sparqlEndpoint = `${url}/sparql`;
+ this.sparqlEndpointUpdate = `${url}/sparql`;
+ }
+
+ async healthCheck() {
+ try {
+ const response = await axios.get(`${this.config.url}/status`, {});
+ if (response.data !== null) {
+ return true;
+ }
+ return false;
+ } catch (e) {
+ return false;
+ }
+ }
+
+ getName() {
+ return 'OtBlazegraph';
+ }
+}
+
+module.exports = OtBlazegraph;
diff --git a/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js b/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js
new file mode 100644
index 000000000..052e81694
--- /dev/null
+++ b/src/modules/triple-store/implementation/ot-fuseki/ot-fuseki.js
@@ -0,0 +1,27 @@
+const axios = require('axios');
+const OtTripleStore = require('../ot-triple-store');
+
+class OtFuseki extends OtTripleStore {
+ initializeSparqlEndpoints(url, repository) {
+ this.sparqlEndpoint = `${url}/${repository}/sparql`;
+ this.sparqlEndpointUpdate = `${url}/${repository}/update`;
+ }
+
+ async healthCheck() {
+ try {
+ const response = await axios.get(`${this.config.url}/$/ping`, {});
+ if (response.data !== null) {
+ return true;
+ }
+ return false;
+ } catch (e) {
+ return false;
+ }
+ }
+
+ getName() {
+ return 'OtFuseki';
+ }
+}
+
+module.exports = OtFuseki;
diff --git a/external/graphdb-service.js b/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
similarity index 54%
rename from external/graphdb-service.js
rename to src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
index 2491dc91f..ed84c5afb 100644
--- a/external/graphdb-service.js
+++ b/src/modules/triple-store/implementation/ot-graphdb/ot-graphdb.js
@@ -3,22 +3,12 @@ const { RepositoryConfig, RepositoryType } = require('graphdb').repository;
const { RDFMimeType } = require('graphdb').http;
const axios = require('axios');
const { execSync } = require('child_process');
-const SparqlqueryService = require('./sparqlquery-service');
+const OtTripleStore = require('../ot-triple-store');
-class GraphdbService extends SparqlqueryService {
- constructor(config) {
- super({
- sparqlEndpoint: `${config.url}/repositories/${config.name}`,
- sparqlEndpointUpdate: `${config.url}/repositories/${config.name}/statements`,
- });
- this.url = config.url;
- this.name = config.name;
- }
-
- async initialize(logger) {
- await super.initialize(logger);
- this.logger = logger;
- const serverConfig = new ServerClientConfig(this.url)
+class OtGraphdb extends OtTripleStore {
+ async initialize(config, logger) {
+ await super.initialize(config, logger);
+ const serverConfig = new ServerClientConfig(this.config.url)
.setTimeout(40000)
.setHeaders({
Accept: RDFMimeType.N_QUADS,
@@ -26,25 +16,43 @@ class GraphdbService extends SparqlqueryService {
.setKeepAlive(true);
const server = new GraphDBServerClient(serverConfig);
- const exists = await server.hasRepository(this.name);
+ const exists = await server.hasRepository(this.config.repository);
if (!exists) {
- const newConfig = new RepositoryConfig(
- this.name,
- '',
- new Map(),
- '',
- 'Repo title',
- RepositoryType.FREE,
- );
- // Use the configuration to create new repository
- await server.createRepository(newConfig);
+ try {
+ await server.createRepository(
+ new RepositoryConfig(
+ this.config.repository,
+ '',
+ new Map(),
+ '',
+ 'Repo title',
+ RepositoryType.FREE,
+ ),
+ );
+ } catch (e) {
+ await server.createRepository(
+ new RepositoryConfig(
+ this.config.repository,
+ '',
+ {},
+ 'graphdb:SailRepository',
+ 'Repo title',
+ 'graphdb',
+ ),
+ );
+ }
}
}
+ initializeSparqlEndpoints(url, repository) {
+ this.sparqlEndpoint = `${url}/repositories/${repository}`;
+ this.sparqlEndpointUpdate = `${url}/repositories/${repository}/statements`;
+ }
+
async healthCheck() {
try {
const response = await axios.get(
- `${this.url}/repositories/${this.name}/health`,
+ `${this.config.url}/repositories/${this.config.repository}/health`,
{},
{
auth: {
@@ -81,4 +89,4 @@ class GraphdbService extends SparqlqueryService {
}
}
-module.exports = GraphdbService;
+module.exports = OtGraphdb;
diff --git a/src/modules/triple-store/implementation/ot-triple-store.js b/src/modules/triple-store/implementation/ot-triple-store.js
new file mode 100644
index 000000000..f31946b5f
--- /dev/null
+++ b/src/modules/triple-store/implementation/ot-triple-store.js
@@ -0,0 +1,209 @@
+const Engine = require('@comunica/query-sparql').QueryEngine;
+const { setTimeout } = require('timers/promises');
+const { SCHEMA_CONTEXT } = require('../../../constants/constants');
+const constants = require('./triple-store-constants');
+
+class OtTripleStore {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+ this.initializeSparqlEndpoints(this.config.url, this.config.repository);
+
+ let ready = await this.healthCheck();
+ let retries = 0;
+ while (!ready && retries < constants.TRIPLE_STORE_CONNECT_MAX_RETRIES) {
+ retries += 1;
+ this.logger.warn(
+ `Cannot connect to Triple store (${this.getName()}), retry number: ${retries}/${
+ constants.TRIPLE_STORE_CONNECT_MAX_RETRIES
+ }. Retrying in ${constants.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY} seconds.`,
+ );
+ /* eslint-disable no-await-in-loop */
+ await setTimeout(constants.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY * 1000);
+ ready = await this.healthCheck();
+ }
+ if (retries === constants.TRIPLE_STORE_CONNECT_MAX_RETRIES) {
+ this.logger.error(
+ `Triple Store (${this.getName()}) not available, max retries reached.`,
+ );
+ process.exit(1);
+ }
+
+ this.queryEngine = new Engine();
+ this.filtertype = {
+ KEYWORD: 'keyword',
+ KEYWORDPREFIX: 'keywordPrefix',
+ TYPES: 'types',
+ ISSUERS: 'issuers',
+ };
+ const sources = [
+ {
+ type: 'sparql',
+ value: `${this.sparqlEndpoint}`,
+ },
+ ];
+
+ this.insertContext = {
+ sources,
+ destination: {
+ type: 'sparql',
+ value: `${this.sparqlEndpointUpdate}`,
+ },
+ };
+ this.queryContext = {
+ sources,
+ };
+ }
+
+ initializeSparqlEndpoints() {
+ // overridden by subclasses
+ return true;
+ }
+
+ async updateAssetsGraph(ual, assetNquads) {
+ const insertion = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ DELETE {<${ual}> schema:latestAssertion ?o}
+ WHERE {
+ GRAPH {
+ ?s ?p ?o .
+ <${ual}> schema:latestAssertion ?o .
+ }
+ };
+ INSERT DATA {
+ GRAPH {
+ ${assetNquads}
+ }
+ }`;
+ await this.queryEngine.queryVoid(insertion, this.insertContext);
+ }
+
+ async insertAssertion(assertionId, assertionNquads) {
+ const exists = await this.assertionExists(assertionId);
+
+ if (!exists) {
+ const insertion = `
+ PREFIX schema: <${SCHEMA_CONTEXT}>
+ INSERT DATA {
+ GRAPH {
+ ${assertionNquads}
+ }
+ }`;
+ await this.queryEngine.queryVoid(insertion, this.insertContext);
+ }
+ }
+
+ async construct(query) {
+ const result = await this.executeQuery(query);
+ return result;
+ }
+
+ async ask(query) {
+ const result = await this.queryEngine.queryBoolean(query, this.queryContext);
+ return result;
+ }
+
+ async assertionExists(graphName) {
+ const escapedGraphName = this.cleanEscapeCharacter(graphName);
+ const query = `ASK WHERE { GRAPH { ?s ?p ?o } }`;
+
+ return this.ask(query);
+ }
+
+ async get(graphName) {
+ const escapedGraphName = this.cleanEscapeCharacter(graphName);
+
+ const query = `PREFIX schema: <${SCHEMA_CONTEXT}>
+ CONSTRUCT { ?s ?p ?o }
+ WHERE {
+ {
+ GRAPH
+ {
+ ?s ?p ?o .
+ }
+ }
+ }`;
+ return this.construct(query);
+ }
+
+ async healthCheck() {
+ return true;
+ }
+
+ async executeQuery(query) {
+ const result = await this.queryEngine.query(query, this.queryContext);
+ const { data } = await this.queryEngine.resultToString(
+ result,
+ 'application/n-quads',
+ this.queryContext,
+ );
+ let nquads = '';
+ for await (const nquad of data) {
+ nquads += nquad;
+ }
+ return nquads;
+ }
+
+ async execute(query) {
+ const result = await this.queryEngine.query(query, this.queryContext);
+ const { data } = await this.queryEngine.resultToString(result);
+ let response = '';
+ for await (const chunk of data) {
+ response += chunk;
+ }
+ return JSON.parse(response);
+ }
+
+ cleanEscapeCharacter(query) {
+ return query.replace(/['|[\]\\]/g, '\\$&');
+ }
+
+ createFilterParameter(queryParameter, type) {
+ const queryParam = this.cleanEscapeCharacter(queryParameter);
+
+ switch (type) {
+ case this.filtertype.KEYWORD:
+ return `FILTER (lcase(?keyword) = '${queryParam}')`;
+ case this.filtertype.KEYWORDPREFIX:
+ return `FILTER contains(lcase(?keyword),'${queryParam}')`;
+ case this.filtertype.ISSUERS:
+ return `FILTER (?issuer IN (${JSON.stringify(queryParam).slice(1, -1)}))`;
+ case this.filtertype.TYPES:
+ return `FILTER (?type IN (${JSON.stringify(queryParam).slice(1, -1)}))`;
+ default:
+ return '';
+ }
+ }
+
+ createLimitQuery(options) {
+ if (!options.limit) {
+ return '';
+ }
+ const queryLimit = Number(options.limit);
+ if (Number.isNaN(queryLimit) || !Number.isInteger(queryLimit)) {
+ this.logger.error(`Failed creating Limit query: ${options.limit} is not a number`);
+ throw new Error('Limit is not a number');
+ } else if (Number.isInteger(options.limit) && options.limit < 0) {
+ this.logger.error(`Failed creating Limit query: ${options.limit} is negative number`);
+ throw new Error('Limit is not a number');
+ }
+ return `LIMIT ${queryLimit}`;
+ }
+
+ isBoolean(param) {
+ return typeof param === 'boolean' || ['true', 'false'].includes(param);
+ }
+
+ async reinitialize() {
+ const ready = await this.healthCheck();
+ if (!ready) {
+ this.logger.warn(
+ `Cannot connect to Triple store (${this.getName()}), check if your triple store is running.`,
+ );
+ } else {
+ this.implementation.initialize(this.logger);
+ }
+ }
+}
+
+module.exports = OtTripleStore;
diff --git a/src/modules/triple-store/implementation/triple-store-constants.js b/src/modules/triple-store/implementation/triple-store-constants.js
new file mode 100644
index 000000000..c6174e101
--- /dev/null
+++ b/src/modules/triple-store/implementation/triple-store-constants.js
@@ -0,0 +1,23 @@
+/**
+ * @constant {number} DID_PREFIX
+ * - DID prefix for graph database
+ */
+exports.DID_PREFIX = 'did:dkg';
+
+/**
+ * @constant {number} TRIPLE_STORE_CONNECT_MAX_RETRIES
+ * - Maximum retries for connecting to triple store
+ */
+ exports.TRIPLE_STORE_CONNECT_MAX_RETRIES = 10;
+
+ /**
+ * @constant {number} TRIPLE_STORE_CONNECT_RETRY_FREQUENCY
+ * - Wait interval between retries for connecting to triple store
+ */
+ exports.TRIPLE_STORE_CONNECT_RETRY_FREQUENCY = 10; // 10 seconds
+
+ /**
+ * @constant {number} TRIPLE_STORE_QUEUE_LIMIT
+ * - Triple store queue limit
+ */
+ exports.TRIPLE_STORE_QUEUE_LIMIT = 5000;
diff --git a/src/modules/triple-store/triple-store-module-manager.js b/src/modules/triple-store/triple-store-module-manager.js
new file mode 100644
index 000000000..226831c1c
--- /dev/null
+++ b/src/modules/triple-store/triple-store-module-manager.js
@@ -0,0 +1,79 @@
+const BaseModuleManager = require('../base-module-manager');
+
+class TripleStoreModuleManager extends BaseModuleManager {
+ getName() {
+ return 'tripleStore';
+ }
+
+ async insertAssertion(assertionId, assertionNquads) {
+ if (this.initialized) {
+ return this.getImplementation().module.insertAssertion(assertionId, assertionNquads);
+ }
+ }
+
+ async updateAssetsGraph(ual, assetNquads) {
+ if (this.initialized) {
+ return this.getImplementation().module.updateAssetsGraph(ual, assetNquads);
+ }
+ }
+
+ async assertionExists(uri) {
+ if (this.initialized) {
+ return this.getImplementation().module.assertionExists(uri);
+ }
+ }
+
+ async get(uri) {
+ if (this.initialized) {
+ return this.getImplementation().module.get(uri);
+ }
+ }
+
+ async assertionsByAsset(uri) {
+ if (this.initialized) {
+ return this.getImplementation().module.assertionsByAsset(uri);
+ }
+ }
+
+ async findAssetsByKeyword(query, options, localQuery) {
+ if (this.initialized) {
+ return this.getImplementation().module.findAssetsByKeyword(query, options, localQuery);
+ }
+ }
+
+ async findAssertionsByKeyword(query, options, localQuery) {
+ if (this.initialized) {
+ return this.getImplementation().module.findAssertionsByKeyword(
+ query,
+ options,
+ localQuery,
+ );
+ }
+ }
+
+ async construct(query) {
+ if (this.initialized) {
+ return this.getImplementation().module.construct(query);
+ }
+ }
+
+ async findAssertions(nquads) {
+ if (this.initialized) {
+ return this.getImplementation().module.findAssertions(nquads);
+ }
+ }
+
+ async select(query) {
+ if (this.initialized) {
+ return this.getImplementation().module.select(query);
+ }
+ }
+
+ async healthCheck() {
+ if (this.initialized) {
+ return this.getImplementation().module.healthCheck();
+ }
+ }
+}
+
+module.exports = TripleStoreModuleManager;
diff --git a/external/BytesUtilities.js b/src/modules/validation/bytes-utilities.js
similarity index 65%
rename from external/BytesUtilities.js
rename to src/modules/validation/bytes-utilities.js
index d3b04c9fb..d9a39cbe6 100644
--- a/external/BytesUtilities.js
+++ b/src/modules/validation/bytes-utilities.js
@@ -11,11 +11,11 @@ class BytesUtilities {
if (number == null) {
return null;
}
- number = number.toLowerCase();
- if (!number.startsWith('0x')) {
- return `0x${number}`;
+ const lowerCaseNumber = number.toLowerCase();
+ if (!lowerCaseNumber.startsWith('0x')) {
+ return `0x${lowerCaseNumber}`;
}
- return number;
+ return lowerCaseNumber;
}
/**
@@ -27,11 +27,11 @@ class BytesUtilities {
if (number == null) {
return null;
}
- number = number.toLowerCase();
- if (number.startsWith('0x')) {
- return number.substring(2);
+ const lowerCaseNumber = number.toLowerCase();
+ if (lowerCaseNumber.startsWith('0x')) {
+ return lowerCaseNumber.substring(2);
}
- return number;
+ return lowerCaseNumber;
}
/**
@@ -56,16 +56,20 @@ class BytesUtilities {
}
static fromString(str) {
- const bn = `0x${(str.slice(0, 2) === '0x' ? new BN(str.slice(2), 16) : new BN(str, 10)).toString('hex')}`;
+ const bn = `0x${(str.slice(0, 2) === '0x'
+ ? new BN(str.slice(2), 16)
+ : new BN(str, 10)
+ ).toString('hex')}`;
return bn === '0x0' ? '0x' : bn;
}
static fromNat(bn) {
- return bn === '0x0' ? '0x' : bn.length % 2 === 0 ? bn : `0x0${bn.slice(2)}`;
+ const intermediateNumber = bn.length % 2 === 0 ? bn : `0x0${bn.slice(2)}`;
+ return bn === '0x0' ? '0x' : intermediateNumber;
}
static pad(l, hex) {
- return hex.length === (l * 2) + 2 ? hex : BytesUtilities.pad(l, `0x0${hex.slice(2)}`);
+ return hex.length === l * 2 + 2 ? hex : BytesUtilities.pad(l, `0x0${hex.slice(2)}`);
}
static flatten(a) {
@@ -73,7 +77,7 @@ class BytesUtilities {
}
static slice(i, j, bs) {
- return `0x${bs.slice((i * 2) + 2, (j * 2) + 2)}`;
+ return `0x${bs.slice(i * 2 + 2, j * 2 + 2)}`;
}
static length(a) {
@@ -81,11 +85,11 @@ class BytesUtilities {
}
static isHexStrict(hex) {
- return ((_.isString(hex) || _.isNumber(hex)) && /^(-)?0x[0-9a-f]*$/i.test(hex));
+ return (_.isString(hex) || _.isNumber(hex)) && /^(-)?0x[0-9a-f]*$/i.test(hex);
}
- static hexToBytes(hex) {
- hex = hex.toString(16);
+ static hexToBytes(number) {
+ let hex = number.toString(16);
if (!BytesUtilities.isHexStrict(hex)) {
throw new Error(`Given value "${hex}" is not a valid hex string.`);
@@ -95,7 +99,7 @@ class BytesUtilities {
let bytes;
let c;
for (bytes = [], c = 0; c < hex.length; c += 2) {
- bytes.push(parseInt(hex.substr(c, 2), 16));
+ bytes.push(parseInt(hex.substring(c, 2), 16));
}
return bytes;
}
diff --git a/src/modules/validation/implementation/merkle-validation.js b/src/modules/validation/implementation/merkle-validation.js
new file mode 100644
index 000000000..bdc387854
--- /dev/null
+++ b/src/modules/validation/implementation/merkle-validation.js
@@ -0,0 +1,31 @@
+const keccak256 = require('keccak256');
+const web3 = require('web3');
+const { MerkleTree } = require('merkletreejs');
+const { calculateRoot } = require('assertion-tools');
+
+class MerkleValidation {
+ async initialize(config, logger) {
+ this.config = config;
+ this.logger = logger;
+ }
+
+ calculateRoot(assertion) {
+ return calculateRoot(assertion);
+ }
+
+ // TODO move to assertion-tools
+ getMerkleProof(nquadsArray, challenge) {
+ nquadsArray.sort();
+
+ const leaves = nquadsArray.map((element, index) =>
+ keccak256(web3.utils.encodePacked(keccak256(element), index)),
+ );
+ const tree = new MerkleTree(leaves, keccak256, { sortPairs: true });
+
+ const proof = tree.getProof(leaves[parseInt(challenge, 10)]);
+
+ return { leaf: leaves[parseInt(challenge, 10)], proof: proof.map((x) => x.data) };
+ }
+}
+
+module.exports = MerkleValidation;
diff --git a/src/modules/validation/validation-module-manager.js b/src/modules/validation/validation-module-manager.js
new file mode 100644
index 000000000..fd2cb14bf
--- /dev/null
+++ b/src/modules/validation/validation-module-manager.js
@@ -0,0 +1,21 @@
+const BaseModuleManager = require('../base-module-manager');
+
+class ValidationModuleManager extends BaseModuleManager {
+ getName() {
+ return 'validation';
+ }
+
+ calculateRoot(assertion) {
+ if (this.initialized) {
+ return this.getImplementation().module.calculateRoot(assertion);
+ }
+ }
+
+ getMerkleProof(assertion, index) {
+ if (this.initialized) {
+ return this.getImplementation().module.getMerkleProof(assertion, index);
+ }
+ }
+}
+
+module.exports = ValidationModuleManager;
diff --git a/src/service/auth-service.js b/src/service/auth-service.js
new file mode 100644
index 000000000..d1a7846de
--- /dev/null
+++ b/src/service/auth-service.js
@@ -0,0 +1,145 @@
+const ipLib = require('ip');
+const jwtUtil = require('./util/jwt-util');
+
+module.exports = class AuthService {
+ constructor(ctx) {
+ this._authConfig = ctx.config.auth;
+ this._repository = ctx.repositoryModuleManager;
+ this._logger = ctx.logger;
+ }
+
+ /**
+ * Authenticate users based on provided ip and token
+ * @param ip
+ * @param token
+ * @returns {boolean}
+ */
+ async authenticate(ip, token) {
+ const isWhitelisted = this._isIpWhitelisted(ip);
+ const isTokenValid = await this._isTokenValid(token);
+
+ const isAuthenticated = isWhitelisted && isTokenValid;
+
+ if (!isAuthenticated) {
+ this._logMessage('Received unauthenticated request.');
+ }
+
+ return isAuthenticated;
+ }
+
+ /**
+ * Checks whether user whose token is provided has abilities for system operation
+ * @param token
+ * @param systemOperation
+ * @returns {Promise}
+ */
+ async isAuthorized(token, systemOperation) {
+ if (!this._authConfig.tokenBasedAuthEnabled) {
+ return true;
+ }
+
+ const tokenId = jwtUtil.getPayload(token).jti;
+ const abilities = await this._repository.getTokenAbilities(tokenId);
+
+ const isAuthorized = abilities.includes(systemOperation);
+
+ const logMessage = isAuthorized
+ ? `Token ${tokenId} is successfully authenticated and authorized.`
+ : `Received unauthorized request.`;
+
+ this._logMessage(logMessage);
+
+ return isAuthorized;
+ }
+
+ /**
+ * Determines whether operation is listed in config.auth.publicOperations
+ * @param operationName
+ * @returns {boolean}
+ */
+ isPublicOperation(operationName) {
+ if (!Array.isArray(this._authConfig.publicOperations)) {
+ return false;
+ }
+
+ return this._authConfig.publicOperations.includes(operationName);
+ }
+
+ /**
+ * Validates token structure and revoked status
+ * If ot-node is configured not to do a token based auth, it will return true
+ * @param token
+ * @returns {boolean}
+ * @private
+ */
+ async _isTokenValid(token) {
+ if (!this._authConfig.tokenBasedAuthEnabled) {
+ return true;
+ }
+
+ if (!jwtUtil.validateJWT(token)) {
+ return false;
+ }
+
+ const isRevoked = await this._isTokenRevoked(token);
+
+ return isRevoked !== null && !isRevoked;
+ }
+
+ /**
+ * Checks whether provided ip is whitelisted in config
+ * Returns false if ip based auth is disabled
+ * @param reqIp
+ * @returns {boolean}
+ * @private
+ */
+ _isIpWhitelisted(reqIp) {
+ if (!this._authConfig.ipBasedAuthEnabled) {
+ return true;
+ }
+
+ for (const whitelistedIp of this._authConfig.ipWhitelist) {
+ let isEqual = false;
+
+ try {
+ isEqual = ipLib.isEqual(reqIp, whitelistedIp);
+ } catch (e) {
+ // if ip is not valid IP isEqual should remain false
+ }
+
+ if (isEqual) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether provided token is revoked
+ * Returns false if token based auth is disabled
+ * @param token
+ * @returns {Promise|boolean}
+ * @private
+ */
+ _isTokenRevoked(token) {
+ if (!this._authConfig.tokenBasedAuthEnabled) {
+ return false;
+ }
+
+ const tokenId = jwtUtil.getPayload(token).jti;
+
+ return this._repository.isTokenRevoked(tokenId);
+ }
+
+ /**
+ * Logs message if loggingEnabled is set to true
+ * @param message
+ * @private
+ */
+ _logMessage(message) {
+ if (this._authConfig.loggingEnabled) {
+ this._logger.info(`[AUTH] ${message}`);
+ }
+ }
+};
diff --git a/src/service/data-service.js b/src/service/data-service.js
new file mode 100644
index 000000000..d750bbf9b
--- /dev/null
+++ b/src/service/data-service.js
@@ -0,0 +1,46 @@
+const jsonld = require('jsonld');
+const { SCHEMA_CONTEXT } = require('../constants/constants');
+
+const ALGORITHM = 'URDNA2015';
+const FORMAT = 'application/n-quads';
+
+class DataService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+ }
+
+ async toNQuads(content, inputFormat) {
+ const options = {
+ algorithm: ALGORITHM,
+ format: FORMAT,
+ };
+
+ if (inputFormat) {
+ options.inputFormat = inputFormat;
+ }
+
+ const canonized = await jsonld.canonize(content, options);
+
+ return canonized.split('\n').filter((x) => x !== '');
+ }
+
+ async compact(content) {
+ const result = await jsonld.compact(content, {
+ '@context': SCHEMA_CONTEXT,
+ });
+
+ return result;
+ }
+
+ async canonize(content) {
+ const nquads = await this.toNQuads(content);
+ if (nquads && nquads.length === 0) {
+ throw new Error('File format is corrupted, no n-quads extracted.');
+ }
+
+ return nquads;
+ }
+}
+
+module.exports = DataService;
diff --git a/modules/service/dependency-injection.js b/src/service/dependency-injection.js
similarity index 79%
rename from modules/service/dependency-injection.js
rename to src/service/dependency-injection.js
index d5f0ae878..66e732dda 100644
--- a/modules/service/dependency-injection.js
+++ b/src/service/dependency-injection.js
@@ -8,12 +8,10 @@ class DependencyInjection {
container.loadModules(
[
- 'modules/controller/**/*.js',
- 'modules/service/**/*.js',
- 'modules/command/**/*.js',
- 'modules/manager/**/*.js',
- 'modules/worker/worker-pool.js',
'src/controller/**/*.js',
+ 'src/service/*.js',
+ 'src/commands/**/**/*.js',
+ 'src/commands/*.js',
'src/modules/base-module-manager.js',
'src/modules/**/*module-manager.js',
],
diff --git a/src/service/file-service.js b/src/service/file-service.js
new file mode 100644
index 000000000..6aa54c433
--- /dev/null
+++ b/src/service/file-service.js
@@ -0,0 +1,96 @@
+const path = require('path');
+const { mkdir, writeFile, readFile, unlink, stat } = require('fs/promises');
+const appRootPath = require('app-root-path');
+
+const MIGRATION_FOLDER_NAME = 'migrations';
+
+class FileService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+ }
+
+ getFileExtension(fileName) {
+ return path.extname(fileName).toLowerCase();
+ }
+
+ /**
+ * Write contents to file
+ * @param directory
+ * @param filename
+ * @param data
+ * @returns {Promise}
+ */
+ async writeContentsToFile(directory, filename, data) {
+ this.logger.debug(`Saving file with name: ${filename} in directory: ${directory}`);
+ await mkdir(directory, { recursive: true });
+ const fullpath = path.join(directory, filename);
+ await writeFile(fullpath, data);
+ return fullpath;
+ }
+
+ readFileOnPath(filePath) {
+ return this._readFile(filePath, false);
+ }
+
+ /**
+ * Loads JSON data from file
+ * @returns {Promise}
+ * @private
+ */
+ loadJsonFromFile(filePath) {
+ return this._readFile(filePath, true);
+ }
+
+ async fileExists(filePath) {
+ try {
+ await stat(filePath);
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+
+ async _readFile(filePath, convertToJSON = false) {
+ this.logger.debug(
+ `Reading file on path: ${filePath}, converting to json: ${convertToJSON}`,
+ );
+ try {
+ const data = await readFile(filePath);
+ return convertToJSON ? JSON.parse(data) : data.toString();
+ } catch (e) {
+ throw Error(`File doesn't exist on file path: ${filePath}`);
+ }
+ }
+
+ async removeFile(filePath) {
+ this.logger.debug(`Removing file on path: ${filePath}`);
+ await unlink(filePath);
+ return true;
+ }
+
+ getDataFolderPath() {
+ if (process.env.NODE_ENV === 'testnet' || process.env.NODE_ENV === 'mainnet') {
+ return path.join(appRootPath.path, '..', this.config.appDataPath);
+ }
+ return path.join(appRootPath.path, this.config.appDataPath);
+ }
+
+ getUpdateFilePath() {
+ return path.join(this.getDataFolderPath(), 'UPDATED');
+ }
+
+ getMigrationFolderPath() {
+ return path.join(this.getDataFolderPath(), MIGRATION_FOLDER_NAME);
+ }
+
+ getOperationIdCachePath() {
+ return path.join(this.getDataFolderPath(), 'operation_id_cache');
+ }
+
+ getOperationIdDocumentPath(operationId) {
+ return path.join(this.getOperationIdCachePath(), operationId);
+ }
+}
+
+module.exports = FileService;
diff --git a/src/service/get-service.js b/src/service/get-service.js
new file mode 100644
index 000000000..9a5dadb10
--- /dev/null
+++ b/src/service/get-service.js
@@ -0,0 +1,94 @@
+const { Mutex } = require('async-mutex');
+const OperationService = require('./operation-service');
+const {
+ GET_REQUEST_STATUS,
+ OPERATION_ID_STATUS,
+ GET_STATUS,
+ NETWORK_PROTOCOLS,
+ ERROR_TYPE,
+} = require('../constants/constants');
+
+class GetService extends OperationService {
+ constructor(ctx) {
+ super(ctx);
+
+ this.dataService = ctx.dataService;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+
+ this.operationName = 'get';
+ this.networkProtocol = NETWORK_PROTOCOLS.GET;
+ this.operationRequestStatus = GET_REQUEST_STATUS;
+ this.operationStatus = GET_STATUS;
+ this.errorType = ERROR_TYPE.GET.GET_ERROR;
+ this.completedStatuses = [
+ OPERATION_ID_STATUS.GET.GET_FETCH_FROM_NODES_END,
+ OPERATION_ID_STATUS.GET.GET_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ];
+ this.operationMutex = new Mutex();
+ }
+
+ async processResponse(command, responseStatus, responseData, errorMessage = null) {
+ const { operationId, numberOfFoundNodes, numberOfNodesInBatch, leftoverNodes, keyword } =
+ command.data;
+
+ const keywordsStatuses = await this.getResponsesStatuses(
+ responseStatus,
+ errorMessage,
+ operationId,
+ keyword,
+ );
+
+ const { completedNumber, failedNumber } = keywordsStatuses[keyword];
+ const numberOfResponses = completedNumber + failedNumber;
+ this.logger.debug(
+ `Processing ${this.networkProtocol} response for operationId: ${operationId}, keyword: ${keyword}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${numberOfNodesInBatch} number of leftover nodes: ${leftoverNodes.length}, number of responses: ${numberOfResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}`,
+ );
+
+ if (completedNumber === 1) {
+ await this.markOperationAsCompleted(
+ operationId,
+ { assertion: responseData.nquads },
+ this.completedStatuses,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ } else if (
+ completedNumber < 1 &&
+ (numberOfFoundNodes === failedNumber || failedNumber % numberOfNodesInBatch === 0)
+ ) {
+ if (leftoverNodes.length === 0) {
+ await this.markOperationAsCompleted(
+ operationId,
+ {
+ message: 'Unable to find assertion on the network!',
+ },
+ this.completedStatuses,
+ );
+ this.logResponsesSummary(completedNumber, failedNumber);
+ } else {
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
+ }
+ }
+ }
+
+ async localGet(assertionId, operationId) {
+ this.logger.debug(`Getting assertion: ${assertionId} for operationId: ${operationId}`);
+
+ let nquads = await this.tripleStoreModuleManager.get(assertionId);
+ nquads = await this.dataService.toNQuads(nquads, 'application/n-quads');
+
+ this.logger.debug(
+ `Assertion: ${assertionId} for operationId: ${operationId} ${
+ nquads.length ? '' : 'not'
+ } found in local database.`,
+ );
+
+ if (nquads.length) {
+ this.logger.debug(`Number of n-quads retrieved from the database : ${nquads.length}`);
+ }
+
+ return nquads;
+ }
+}
+
+module.exports = GetService;
diff --git a/src/service/json-schema-service.js b/src/service/json-schema-service.js
new file mode 100644
index 000000000..3720f21bd
--- /dev/null
+++ b/src/service/json-schema-service.js
@@ -0,0 +1,23 @@
+const publishSchema = require('../controller/v1/request-schema/publish-schema');
+const getSchema = require('../controller/v1/request-schema/get-schema');
+const searchSchema = require('../controller/v1/request-schema/search-schema');
+
+class JsonSchemaService {
+ constructor(ctx) {
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ }
+
+ publishSchema() {
+ return publishSchema(this.blockchainModuleManager.getImplementationsNames());
+ }
+
+ getSchema() {
+ return getSchema();
+ }
+
+ searchSchema() {
+ return searchSchema();
+ }
+}
+
+module.exports = JsonSchemaService;
diff --git a/src/service/operation-id-service.js b/src/service/operation-id-service.js
new file mode 100644
index 000000000..468f338d8
--- /dev/null
+++ b/src/service/operation-id-service.js
@@ -0,0 +1,110 @@
+const validator = require('validator');
+
+class OperationIdService {
+ constructor(ctx) {
+ this.logger = ctx.logger;
+ this.fileService = ctx.fileService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.eventEmitter = ctx.eventEmitter;
+
+ this.memoryCachedHandlersData = {};
+ }
+
+ async generateOperationId(status) {
+ const operationIdObject = await this.repositoryModuleManager.createOperationIdRecord({
+ status,
+ });
+ const operationId = operationIdObject.operation_id;
+ this.emitChangeEvent(status, operationId);
+ this.logger.debug(`Generated operation id for request ${operationId}`);
+ return operationId;
+ }
+
+ async getOperationIdRecord(operationId) {
+ const operationIdRecord = await this.repositoryModuleManager.getOperationIdRecord(
+ operationId,
+ );
+ return operationIdRecord;
+ }
+
+ operationIdInRightFormat(operationId) {
+ return validator.isUUID(operationId);
+ }
+
+ async updateOperationIdStatus(operationId, status, errorMessage = null, errorType = null) {
+ const response = {
+ status,
+ };
+
+ if (errorMessage !== null) {
+ this.logger.debug(`Marking operation id ${operationId} as failed`);
+ response.data = JSON.stringify({ errorMessage, errorType });
+ await this.removeOperationIdCache(operationId);
+ }
+
+ this.emitChangeEvent(status, operationId, errorMessage, errorType);
+
+ await this.repositoryModuleManager.updateOperationIdRecord(response, operationId);
+ }
+
+ async updateOperationIdData(data, operationId) {
+ await this.repositoryModuleManager.updateOperationIdRecord(data, operationId);
+ }
+
+ emitChangeEvent(status, operationId, errorMessage = null, errorType = null) {
+ const timestamp = Date.now();
+ const eventName = 'operation_status_changed';
+
+ const eventData = {
+ lastEvent: status,
+ operationId,
+ timestamp,
+ value1: errorMessage,
+ value2: errorType,
+ };
+
+ this.eventEmitter.emit(eventName, eventData);
+ }
+
+ async cacheOperationIdData(operationId, data) {
+ this.logger.debug(`Caching data for operation id: ${operationId} in file`);
+ const operationIdCachePath = this.fileService.getOperationIdCachePath();
+
+ await this.fileService.writeContentsToFile(
+ operationIdCachePath,
+ operationId,
+ JSON.stringify(data),
+ );
+
+ this.memoryCachedHandlersData[operationId] = data;
+ }
+
+ async getCachedOperationIdData(operationId) {
+ if (this.memoryCachedHandlersData[operationId]) {
+ this.logger.debug(`Reading operation id: ${operationId} cached data from memory`);
+ return this.memoryCachedHandlersData[operationId];
+ }
+
+ this.logger.debug(`Reading operation id: ${operationId} cached data from file`);
+ const documentPath = this.fileService.getOperationIdDocumentPath(operationId);
+ let data;
+ if (await this.fileService.fileExists(documentPath)) {
+ data = await this.fileService.loadJsonFromFile(documentPath);
+ }
+ return data;
+ }
+
+ async removeOperationIdCache(operationId) {
+ this.logger.debug(`Removing operation id: ${operationId} cached data`);
+ const operationIdCachePath = this.fileService.getOperationIdDocumentPath(operationId);
+ await this.fileService.removeFile(operationIdCachePath);
+ this.removeOperationIdMemoryCache(operationId);
+ }
+
+ removeOperationIdMemoryCache(operationId) {
+ this.logger.debug(`Removing operation id: ${operationId} cached data from memory`);
+ delete this.memoryCachedHandlersData[operationId];
+ }
+}
+
+module.exports = OperationIdService;
diff --git a/src/service/operation-service.js b/src/service/operation-service.js
new file mode 100644
index 000000000..beab3d9d1
--- /dev/null
+++ b/src/service/operation-service.js
@@ -0,0 +1,112 @@
+const { OPERATION_ID_STATUS } = require('../constants/constants');
+
+class OperationService {
+ constructor(ctx) {
+ this.config = ctx.config;
+ this.logger = ctx.logger;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.operationIdService = ctx.operationIdService;
+ this.commandExecutor = ctx.commandExecutor;
+ }
+
+ getOperationName() {
+ return this.operationName;
+ }
+
+ getNetworkProtocol() {
+ return this.networkProtocol;
+ }
+
+ getOperationRequestStatus() {
+ return this.operationRequestStatus;
+ }
+
+ getOperationStatus() {
+ return this.operationStatus;
+ }
+
+ async getResponsesStatuses(responseStatus, errorMessage, operationId, keyword) {
+ const self = this;
+ let responses = 0;
+ await this.operationMutex.runExclusive(async () => {
+ await self.repositoryModuleManager.createOperationResponseRecord(
+ responseStatus,
+ this.operationName,
+ operationId,
+ keyword,
+ errorMessage,
+ );
+ responses = await self.repositoryModuleManager.getOperationResponsesStatuses(
+ this.operationName,
+ operationId,
+ );
+ });
+
+ const keywordsStatuses = {};
+ responses.forEach((response) => {
+ if (!keywordsStatuses[response.keyword])
+ keywordsStatuses[response.keyword] = { failedNumber: 0, completedNumber: 0 };
+
+ if (response.status === this.operationRequestStatus.FAILED) {
+ keywordsStatuses[response.keyword].failedNumber += 1;
+ } else {
+ keywordsStatuses[response.keyword].completedNumber += 1;
+ }
+ });
+
+ return keywordsStatuses;
+ }
+
+ async markOperationAsCompleted(operationId, responseData, endStatuses) {
+ this.logger.info(`Finalizing ${this.networkProtocol} for operationId: ${operationId}`);
+
+ await this.repositoryModuleManager.updateOperationStatus(
+ this.operationName,
+ operationId,
+ this.operationStatus.COMPLETED,
+ );
+
+ await this.operationIdService.cacheOperationIdData(operationId, responseData);
+
+ for (const status of endStatuses) {
+ // eslint-disable-next-line no-await-in-loop
+ await this.operationIdService.updateOperationIdStatus(operationId, status);
+ }
+ }
+
+ async markOperationAsFailed(operationId, message) {
+ this.logger.info(`${this.networkProtocol} for operationId: ${operationId} failed.`);
+
+ await this.repositoryModuleManager.updateOperationStatus(
+ this.operationName,
+ operationId,
+ this.operationStatus.FAILED,
+ );
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.FAILED,
+ message,
+ this.errorType,
+ );
+ }
+
+ async scheduleOperationForLeftoverNodes(commandData, leftoverNodes) {
+ await this.commandExecutor.add({
+ name: `${this.operationName}ScheduleMessagesCommand`,
+ delay: 0,
+ data: { ...commandData, leftoverNodes },
+ transactional: false,
+ });
+ }
+
+ logResponsesSummary(completedNumber, failedNumber) {
+ this.logger.info(
+ `Total number of responses: ${
+ failedNumber + completedNumber
+ }, failed: ${failedNumber}, completed: ${completedNumber}`,
+ );
+ }
+}
+
+module.exports = OperationService;
diff --git a/src/service/publish-service.js b/src/service/publish-service.js
new file mode 100644
index 000000000..404c4a985
--- /dev/null
+++ b/src/service/publish-service.js
@@ -0,0 +1,138 @@
+const { Mutex } = require('async-mutex');
+const { formatAssertion } = require('assertion-tools');
+const OperationService = require('./operation-service');
+const {
+ OPERATION_ID_STATUS,
+ PUBLISH_REQUEST_STATUS,
+ PUBLISH_STATUS,
+ NETWORK_PROTOCOLS,
+ ERROR_TYPE,
+ SCHEMA_CONTEXT,
+} = require('../constants/constants');
+
+class PublishService extends OperationService {
+ constructor(ctx) {
+ super(ctx);
+ this.ualService = ctx.ualService;
+ this.blockchainModuleManager = ctx.blockchainModuleManager;
+ this.tripleStoreModuleManager = ctx.tripleStoreModuleManager;
+ this.validationModuleManager = ctx.validationModuleManager;
+ this.dataService = ctx.dataService;
+
+ this.operationName = 'publish';
+ this.networkProtocol = NETWORK_PROTOCOLS.STORE;
+ this.operationRequestStatus = PUBLISH_REQUEST_STATUS;
+ this.operationStatus = PUBLISH_STATUS;
+ this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_ERROR;
+ this.completedStatuses = [
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_REPLICATE_END,
+ OPERATION_ID_STATUS.PUBLISH.PUBLISH_END,
+ OPERATION_ID_STATUS.COMPLETED,
+ ];
+ this.operationMutex = new Mutex();
+ }
+
+ async processResponse(command, responseStatus, responseData, errorMessage = null) {
+ const { operationId, numberOfFoundNodes, leftoverNodes, numberOfNodesInBatch, keyword } =
+ command.data;
+
+ const keywordsStatuses = await this.getResponsesStatuses(
+ responseStatus,
+ errorMessage,
+ operationId,
+ keyword,
+ );
+
+ const { completedNumber, failedNumber } = keywordsStatuses[keyword];
+ const numberOfResponses = completedNumber + failedNumber;
+ this.logger.debug(
+ `Processing ${this.networkProtocol} response for operationId: ${operationId}, keyword: ${keyword}. Total number of nodes: ${numberOfFoundNodes}, number of nodes in batch: ${numberOfNodesInBatch} number of leftover nodes: ${leftoverNodes.length}, number of responses: ${numberOfResponses}, Completed: ${completedNumber}, Failed: ${failedNumber}, minimum replication factor: ${this.config.minimumReplicationFactor}`,
+ );
+
+ if (completedNumber === this.config.minimumReplicationFactor) {
+ let allCompleted = true;
+ for (const key in keywordsStatuses) {
+ if (keywordsStatuses[key].completedNumber < this.config.minimumReplicationFactor) {
+ allCompleted = false;
+ break;
+ }
+ }
+ if (allCompleted) {
+ await this.markOperationAsCompleted(operationId, {}, this.completedStatuses);
+ this.logResponsesSummary(completedNumber, failedNumber);
+ this.logger.info(
+ `Publish with operation id: ${operationId} with status: ${
+ this.completedStatuses[this.completedStatuses.length - 1]
+ }`,
+ );
+ }
+ } else if (
+ completedNumber < this.config.minimumReplicationFactor &&
+ (numberOfFoundNodes === numberOfResponses ||
+ numberOfResponses % numberOfNodesInBatch === 0)
+ ) {
+ if (leftoverNodes.length === 0) {
+ await this.markOperationAsFailed(operationId, 'Not replicated to enough nodes!');
+ this.logResponsesSummary(completedNumber, failedNumber);
+ } else {
+ await this.scheduleOperationForLeftoverNodes(command.data, leftoverNodes);
+ }
+ }
+ }
+
+ async getAssertion(ual) {
+ this.logger.info(`Getting assertion for ual: ${ual}`);
+
+ const { blockchain, contract, tokenId } = this.ualService.resolveUAL(ual);
+ const assertionId = await this.blockchainModuleManager.getLatestCommitHash(
+ blockchain,
+ contract,
+ tokenId,
+ );
+
+ return assertionId;
+ }
+
+ async validateAssertion(assertionId, operationId) {
+ this.logger.info(`Validating assertionId: ${assertionId}`);
+
+ const { assertion } = await this.operationIdService.getCachedOperationIdData(operationId);
+ const calculatedAssertionId = this.validationModuleManager.calculateRoot(assertion);
+
+ if (assertionId !== calculatedAssertionId) {
+ throw Error(
+ `Invalid root hash. Received value from blockchain: ${assertionId}, calculated: ${calculatedAssertionId}`,
+ );
+ }
+
+ this.logger.info(`Assertion integrity validated!`);
+ }
+
+ async localStore(ual, assertionId, operationId) {
+ const { assertion } = await this.operationIdService.getCachedOperationIdData(operationId);
+ const { blockchain, contract, tokenId } = this.ualService.resolveUAL(ual);
+
+ const assertionGraphName = `assertion:${assertionId}`;
+
+ const assetNquads = await formatAssertion({
+ '@context': SCHEMA_CONTEXT,
+ '@id': ual,
+ blockchain,
+ contract,
+ tokenId,
+ assertion: { '@id': assertionGraphName },
+ latestAssertion: { '@id': assertionGraphName },
+ });
+
+ this.logger.info(`Inserting assertion with ual: ${ual} in database.`);
+
+ await Promise.all([
+ this.tripleStoreModuleManager.updateAssetsGraph(ual, assetNquads.join('\n')),
+ this.tripleStoreModuleManager.insertAssertion(assertionId, assertion.join('\n')),
+ ]);
+
+ this.logger.info(`Assertion ${ual} has been successfully inserted!`);
+ }
+}
+
+module.exports = PublishService;
diff --git a/src/service/search-service.js b/src/service/search-service.js
new file mode 100644
index 000000000..471669b49
--- /dev/null
+++ b/src/service/search-service.js
@@ -0,0 +1,32 @@
+const { OPERATION_ID_STATUS } = require('../constants/constants');
+
+class SearchService {
+ constructor(ctx) {
+ this.logger = ctx.logger;
+
+ this.operationIdService = ctx.operationIdService;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ this.commandExecutor = ctx.commandExecutor;
+ }
+
+ async processSearchResponse(command, responseData) {
+ const { operationId } = command.data;
+
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.SEARCH_END,
+ );
+ await this.operationIdService.updateOperationIdStatus(
+ operationId,
+ OPERATION_ID_STATUS.SEARCH_ASSERTIONS.COMPLETED,
+ );
+
+ let data = await this.operationIdService.getCachedOperationIdData(operationId);
+
+ data = [...new Set([...data, ...responseData])];
+
+ await this.operationIdService.cacheOperationIdData(operationId, data);
+ }
+}
+
+module.exports = SearchService;
diff --git a/src/service/telemetry-injection-service.js b/src/service/telemetry-injection-service.js
new file mode 100644
index 000000000..54e061237
--- /dev/null
+++ b/src/service/telemetry-injection-service.js
@@ -0,0 +1,36 @@
+class TelemetryInjectionService {
+ constructor(ctx) {
+ this.logger = ctx.logger;
+ this.config = ctx.config;
+ this.eventEmitter = ctx.eventEmitter;
+ this.repositoryModuleManager = ctx.repositoryModuleManager;
+ }
+
+ initialize() {
+ this.listenOnEvents();
+ }
+
+ listenOnEvents() {
+ this.eventEmitter.on('operation_status_changed', (eventData) => {
+ this.repositoryModuleManager.createEventRecord(
+ eventData.operationId,
+ eventData.lastEvent,
+ eventData.timestamp,
+ eventData.value1,
+ eventData.value2,
+ );
+ });
+ }
+
+ async getUnpublishedEvents() {
+ return this.repositoryModuleManager.getUnpublishedEvents();
+ }
+
+ async removePublishedEvents(events) {
+ const ids = events.map((event) => event.id);
+
+ await this.repositoryModuleManager.destroyEvents(ids);
+ }
+}
+
+module.exports = TelemetryInjectionService;
diff --git a/src/service/ual-service.js b/src/service/ual-service.js
new file mode 100644
index 000000000..ffb28673e
--- /dev/null
+++ b/src/service/ual-service.js
@@ -0,0 +1,44 @@
+/* eslint-disable no-restricted-globals */
+class UALService {
+ constructor(config, logger) {
+ this.config = config;
+ this.logger = logger;
+ }
+
+ deriveUAL(blockchain, contract, tokenId) {
+ return `did:${blockchain.toLowerCase()}:${contract.toLowerCase()}/${tokenId}`;
+ }
+
+ isUAL(ual) {
+ const segments = ual.split(':');
+ if (!segments || !segments.length || segments.length !== 3) return false;
+
+ const blockchainSegments = segments[2].split('/');
+ if (!blockchainSegments || !blockchainSegments.length || blockchainSegments.length < 2)
+ return false;
+
+ return !isNaN(blockchainSegments[1]);
+ }
+
+ resolveUAL(ual) {
+ const segments = ual.split(':');
+ const blockchainSegments = segments[2].split('/');
+
+ if (
+ segments.length !== 3 ||
+ blockchainSegments.length < 2 ||
+ isNaN(blockchainSegments[1])
+ ) {
+ throw new Error(`UAL doesn't have correct format: ${ual}`);
+ }
+
+ return {
+ blockchain: segments[1],
+ contract: blockchainSegments[0],
+ tokenId: blockchainSegments[1],
+ assertionId: blockchainSegments.length > 2 ? blockchainSegments[2] : null,
+ };
+ }
+}
+
+module.exports = UALService;
diff --git a/src/service/util/jwt-util.js b/src/service/util/jwt-util.js
new file mode 100644
index 000000000..5308cae5a
--- /dev/null
+++ b/src/service/util/jwt-util.js
@@ -0,0 +1,67 @@
+const jwt = require('jsonwebtoken');
+const { validate } = require('uuid');
+
+class JwtUtil {
+ constructor() {
+ this._secret = process.env.JWT_SECRET;
+ }
+
+ /**
+ * Generates new JWT token
+ * @param uuid uuid from token table
+ * @param expiresIn optional parameter. accepts values for ms package (https://www.npmjs.com/package/ms)
+ * @returns {string|null}
+ */
+ generateJWT(uuid, expiresIn = null) {
+ if (!validate(uuid)) {
+ return null;
+ }
+
+ const options = {
+ jwtid: uuid,
+ };
+
+ if (expiresIn) {
+ options.expiresIn = expiresIn;
+ }
+
+ return jwt.sign({}, this._secret, options);
+ }
+
+ /**
+ * Validates JWT token
+ * @param {string} token
+ * @returns {boolean}
+ */
+ validateJWT(token) {
+ try {
+ jwt.verify(token, this._secret);
+ } catch (e) {
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Returns JWT payload
+ * @param {string} token
+ * @returns {*}
+ */
+ getPayload(token) {
+ return jwt.decode(token);
+ }
+
+ /**
+ * Decodes token
+ * @param token
+ * @returns {{payload: any, signature: *, header: *}|*}
+ */
+ decode(token) {
+ return jwt.decode(token, { complete: true });
+ }
+}
+
+const jwtUtil = new JwtUtil();
+
+module.exports = jwtUtil;
diff --git a/modules/worker/l1-worker.js b/src/worker/l1-worker.js
similarity index 62%
rename from modules/worker/l1-worker.js
rename to src/worker/l1-worker.js
index 1e129e17a..4705b7740 100644
--- a/modules/worker/l1-worker.js
+++ b/src/worker/l1-worker.js
@@ -13,8 +13,8 @@ async function toNQuads(data, inputFormat) {
const options = {
algorithm: 'URDNA2015',
format: 'application/n-quads',
- }
- if(inputFormat) {
+ };
+ if (inputFormat) {
options.inputFormat = inputFormat;
}
const canonized = await jsonld.canonize(data, options);
@@ -24,16 +24,17 @@ async function toNQuads(data, inputFormat) {
function fromNQuads(nquads, context, frame) {
return new Promise((accept, reject) => {
- jsonld.fromRDF(nquads.join('\n'), {
- algorithm: 'URDNA2015',
- format: 'application/n-quads',
- })
- .then((json) => jsonld.frame(json, frame))
- .then((json) => jsonld.compact(json, context))
- .then((result) => {
- accept(result);
- })
- .catch((err) => reject(err));
+ jsonld
+ .fromRDF(nquads.join('\n'), {
+ algorithm: 'URDNA2015',
+ format: 'application/n-quads',
+ })
+ .then((json) => jsonld.frame(json, frame))
+ .then((json) => jsonld.compact(json, context))
+ .then((result) => {
+ accept(result);
+ })
+ .catch((err) => reject(err));
});
}
diff --git a/modules/worker/worker-pool.js b/src/worker/worker-pool.js
similarity index 93%
rename from modules/worker/worker-pool.js
rename to src/worker/worker-pool.js
index 1aa0681df..66d530656 100644
--- a/modules/worker/worker-pool.js
+++ b/src/worker/worker-pool.js
@@ -9,7 +9,8 @@ class WorkerPool {
offload(fn, args) {
return new Promise((accept, reject) => {
- this.pool.exec(fn, args)
+ this.pool
+ .exec(fn, args)
.then((result) => {
accept(result);
})
diff --git a/supervisord.conf b/supervisord.conf
deleted file mode 100644
index 31a48556c..000000000
--- a/supervisord.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-[supervisord]
-nodaemon=true
-directory=/
-logfile=/dev/null
-logfile_maxbytes=0
-loglevel=warn
-
-[rpcinterface:supervisor]
-supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface
-
-[program:otnode]
-command=bash -c "nodemon --quiet index.js"
-redirect_stderr=true
-stdout_logfile=/dev/fd/1
-stdout_logfile_maxbytes=0
diff --git a/test/bdd/features/release.feature b/test/bdd/features/release.feature
index 8a563500e..0a1fab325 100644
--- a/test/bdd/features/release.feature
+++ b/test/bdd/features/release.feature
@@ -11,6 +11,8 @@ Feature: Release related tests
@release
Scenario: Node is able to publish on the network, expect status completed on publish result
Given I setup 4 nodes
+ And I override configuration for node 1 for parameter hubContractAddres = 0x123567
+ And I start the nodes
When I call publish on node 1 with validAssertion with keywords:
| keyword 1 | keyword 2 |
And I wait for last publish to finalize
diff --git a/test/bdd/steps/api/info.js b/test/bdd/steps/api/info.js
index 84e249c6a..5190d0761 100644
--- a/test/bdd/steps/api/info.js
+++ b/test/bdd/steps/api/info.js
@@ -3,7 +3,7 @@ const assert = require('assert');
let info = {};
-When(/^I call info route on node (\d+)/, { timeout: 120000 }, async function (node) {
+When(/^I call info route on node (\d+)/, { timeout: 120000 }, async function infoRouteCall (node) {
// todo validate node number
this.logger.log('I call info route on node: ', node);
info = await this.state.nodes[node - 1].client.info();
diff --git a/test/bdd/steps/api/publish.js b/test/bdd/steps/api/publish.js
index 452f27484..151ed7c37 100644
--- a/test/bdd/steps/api/publish.js
+++ b/test/bdd/steps/api/publish.js
@@ -1,13 +1,13 @@
-const { When, Then, Given } = require('@cucumber/cucumber');
+const { When, Given } = require('@cucumber/cucumber');
const { expect, assert } = require('chai');
-const sleep = require('sleep-async')().Promise;
+const { setTimeout } = require('timers/promises');
const assertions = require('./datasets/assertions.json');
const utilities = require('../../../utilities/utilities');
When(
/^I call publish on node (\d+) with ([^"]*) with keywords:*$/,
{ timeout: 120000 },
- async function (node, assertionName, keywords) {
+ async function publish (node, assertionName, keywords) {
this.logger.log('I call publish route successfully');
expect(
!!assertions[assertionName],
@@ -21,18 +21,18 @@ When(
.catch((error) => {
assert.fail(`Error while trying to publish assertion. ${error}`);
});
- const handlerId = result.data.handler_id;
+ const operationId = result.data.operation_id;
this.state.lastPublishData = {
nodeId: node - 1,
- handlerId,
+ operationId,
keywords: parsedKeywords,
assertion: assertions[assertionName],
};
},
);
-Given('I wait for last publish to finalize', { timeout: 120000 }, async function () {
+Given('I wait for last publish to finalize', { timeout: 120000 }, async function publishFinalize () {
this.logger.log('I wait for last publish to finalize');
expect(
!!this.state.lastPublishData,
@@ -44,11 +44,11 @@ Given('I wait for last publish to finalize', { timeout: 120000 }, async function
const maxRetryCount = 2;
while (loopForPublishResult) {
this.logger.log(
- `Getting publish result for handler id: ${publishData.handlerId} on node: ${publishData.nodeId}`,
+ `Getting publish result for operation id: ${publishData.operationId} on node: ${publishData.nodeId}`,
);
// eslint-disable-next-line no-await-in-loop
const publishResult = await this.state.nodes[publishData.nodeId].client
- .getResult(publishData.handlerId, 'publish')
+ .getResult(publishData.operationId, 'publish')
.catch((error) => {
assert.fail(`Error while trying to get publish result assertion. ${error}`);
});
@@ -62,7 +62,7 @@ Given('I wait for last publish to finalize', { timeout: 120000 }, async function
} else {
retryCount += 1;
// eslint-disable-next-line no-await-in-loop
- await sleep.sleep(5000);
+ await setTimeout(5000);
}
}
});
@@ -70,7 +70,7 @@ Given('I wait for last publish to finalize', { timeout: 120000 }, async function
Given(
/Last publish finished with status: ([COMPLETED|FAILED]+)$/,
{ timeout: 120000 },
- async function (status) {
+ async function lastPublishFinished (status) {
this.logger.log(`Last publish finished with status: ${status}`);
expect(
!!this.state.lastPublishData,
@@ -87,6 +87,6 @@ Given(
},
);
-// Then('The returned handler_id is a valid uuid', () => {
-// assert.equal(uuid.validate(handlerId), true);
+// Then('The returned operation_id is a valid uuid', () => {
+// assert.equal(uuid.validate(operationId), true);
// });
diff --git a/test/bdd/steps/api/resolve.js b/test/bdd/steps/api/resolve.js
index 99b2a483d..2fd372bf9 100644
--- a/test/bdd/steps/api/resolve.js
+++ b/test/bdd/steps/api/resolve.js
@@ -1,38 +1,53 @@
-const { When, Then, Given } = require('@cucumber/cucumber');
+const { When, Given } = require('@cucumber/cucumber');
const { expect, assert } = require('chai');
-const sleep = require('sleep-async')().Promise;
+const { setTimeout } = require('timers/promises');
const sortedStringify = require('json-stable-stringify');
-When(/^I call resolve on node (\d+) for last published assertion/, { timeout: 120000 }, async function (node) {
- this.logger.log('I call resolve route successfully');
- expect(!!this.state.lastPublishData, 'Last publish data is undefined. Publish is not finalized.').to.be.equal(true);
- const assertionIds = [this.state.lastPublishData.result.data.id];
- const result = await this.state.nodes[node - 1].client
- .resolve(assertionIds).catch((error) => {
- assert.fail(`Error while trying to resolve assertion. ${error}`);
- });
- const handlerId = result.data.handler_id;
+When(
+ /^I call resolve on node (\d+) for last published assertion/,
+ { timeout: 120000 },
+ async function resolveCall (node) {
+ this.logger.log('I call resolve route successfully');
+ expect(
+ !!this.state.lastPublishData,
+ 'Last publish data is undefined. Publish is not finalized.',
+ ).to.be.equal(true);
+ const assertionIds = [this.state.lastPublishData.result.data.id];
+ const result = await this.state.nodes[node - 1].client
+ .resolve(assertionIds)
+ .catch((error) => {
+ assert.fail(`Error while trying to resolve assertion. ${error}`);
+ });
+ const operationId = result.data.operation_id;
- this.state.lastResolveData = {
- nodeId: node - 1,
- handlerId,
- assertionIds,
- };
-});
+ this.state.lastResolveData = {
+ nodeId: node - 1,
+ operationId,
+ assertionIds,
+ };
+ },
+);
-Given('I wait for last resolve to finalize', { timeout: 120000 }, async function () {
+Given('I wait for last resolve to finalize', { timeout: 120000 }, async function resolveFinalizeCall () {
this.logger.log('I wait for last resolve to finalize');
- expect(!!this.state.lastResolveData, 'Last resolve data is undefined. Resolve is not started.').to.be.equal(true);
+ expect(
+ !!this.state.lastResolveData,
+ 'Last resolve data is undefined. Resolve is not started.',
+ ).to.be.equal(true);
const resolveData = this.state.lastResolveData;
let loopForResolveResult = true;
let retryCount = 0;
const maxRetryCount = 2;
while (loopForResolveResult) {
- this.logger.log(`Getting resolve result for handler id: ${resolveData.handlerId} on node: ${resolveData.nodeId}`);
+ this.logger.log(
+ `Getting resolve result for operation id: ${resolveData.operationId} on node: ${resolveData.nodeId}`,
+ );
// eslint-disable-next-line no-await-in-loop
- const resolveResult = await this.state.nodes[resolveData.nodeId].client.getResult(resolveData.handlerId, 'resolve').catch((error) => {
- assert.fail(`Error while trying to get resolve result assertion. ${error}`);
- });
+ const resolveResult = await this.state.nodes[resolveData.nodeId].client
+ .getResult(resolveData.operationId, 'resolve')
+ .catch((error) => {
+ assert.fail(`Error while trying to get resolve result assertion. ${error}`);
+ });
if (resolveResult) {
this.state.lastResolveData.result = resolveResult;
loopForResolveResult = false;
@@ -43,28 +58,49 @@ Given('I wait for last resolve to finalize', { timeout: 120000 }, async function
} else {
retryCount += 1;
// eslint-disable-next-line no-await-in-loop
- await sleep.sleep(5000);
+ await setTimeout(5000);
}
}
});
-Given(/Last resolve finished with status: ([COMPLETED|FAILED]+)$/, { timeout: 120000 }, async function (status) {
- this.logger.log(`Last resolve finished with status: ${status}`);
- expect(!!this.state.lastResolveData, 'Last resolve data is undefined. Resolve is not started.').to.be.equal(true);
- expect(!!this.state.lastResolveData.result, 'Last resolve data result is undefined. Resolve is not finished.').to.be.equal(true);
+Given(
+ /Last resolve finished with status: ([COMPLETED|FAILED]+)$/,
+ { timeout: 120000 },
+ async function lastResolveFinishedCall (status) {
+ this.logger.log(`Last resolve finished with status: ${status}`);
+ expect(
+ !!this.state.lastResolveData,
+ 'Last resolve data is undefined. Resolve is not started.',
+ ).to.be.equal(true);
+ expect(
+ !!this.state.lastResolveData.result,
+ 'Last resolve data result is undefined. Resolve is not finished.',
+ ).to.be.equal(true);
- const resolveData = this.state.lastResolveData;
- expect(resolveData.result.status, 'Publish result status validation failed').to.be.equal(status);
-});
+ const resolveData = this.state.lastResolveData;
+ expect(resolveData.result.status, 'Publish result status validation failed').to.be.equal(
+ status,
+ );
+ },
+);
-Given(/Last resolve returned valid result$/, { timeout: 120000 }, async function () {
+Given(/Last resolve returned valid result$/, { timeout: 120000 }, async function resolveCall () {
this.logger.log('Last resolve returned valid result');
- expect(!!this.state.lastResolveData, 'Last resolve data is undefined. Resolve is not started.').to.be.equal(true);
- expect(!!this.state.lastResolveData.result, 'Last publish data result is undefined. Publish is not finished.').to.be.equal(true);
+ expect(
+ !!this.state.lastResolveData,
+ 'Last resolve data is undefined. Resolve is not started.',
+ ).to.be.equal(true);
+ expect(
+ !!this.state.lastResolveData.result,
+ 'Last publish data result is undefined. Publish is not finished.',
+ ).to.be.equal(true);
const resolveData = this.state.lastResolveData;
- expect(Array.isArray(resolveData.result.data), 'Resolve result data expected to be array').to.be.equal(true);
+ expect(
+ Array.isArray(resolveData.result.data),
+ 'Resolve result data expected to be array',
+ ).to.be.equal(true);
// todo only one element in array should be returned
- //expect(resolveData.result.data.length, 'Returned data array length').to.be.equal(1);
+ // expect(resolveData.result.data.length, 'Returned data array length').to.be.equal(1);
const resolvedAssertion = resolveData.result.data[0].assertion.data;
const publishedAssertion = this.state.lastPublishData.assertion;
diff --git a/test/bdd/steps/blockchain.js b/test/bdd/steps/blockchain.js
index 32c7629ca..3a273e331 100644
--- a/test/bdd/steps/blockchain.js
+++ b/test/bdd/steps/blockchain.js
@@ -1,10 +1,10 @@
const {
- And, But, Given, Then, When,
+ Given
} = require('@cucumber/cucumber');
const { expect } = require('chai');
const LocalBlockchain = require('./lib/local-blockchain');
-Given(/^the blockchain is set up$/, { timeout: 60000 }, function (done) {
+Given(/^the blockchain is set up$/, { timeout: 60000 }, function blockchinSetup (done) {
expect(this.state.localBlockchain, 'localBlockchain shouldn\'t be defined').to.be.equal(null);
this.state.localBlockchain = new LocalBlockchain({ logger: this.logger });
diff --git a/test/bdd/steps/common.js b/test/bdd/steps/common.js
index 2a3c3135d..ca11f9a34 100644
--- a/test/bdd/steps/common.js
+++ b/test/bdd/steps/common.js
@@ -19,7 +19,7 @@ function getBlockchainConfiguration(localBlockchain, privateKey, publicKey) {
];
}
-Given(/^I setup (\d+) node[s]*$/, { timeout: 120000 }, function (nodeCount, done) {
+Given(/^I setup (\d+) node[s]*$/, { timeout: 120000 }, function nodeSetup (nodeCount, done) {
this.logger.log(`I setup ${nodeCount} node${nodeCount !== 1 ? 's' : ''}`);
const wallets = this.state.localBlockchain.getWallets();
let nodesStarted = 0;
@@ -59,6 +59,7 @@ Given(/^I setup (\d+) node[s]*$/, { timeout: 120000 }, function (nodeCount, done
});
forkedNode.send(JSON.stringify(nodeConfiguration));
+ // eslint-disable-next-line no-loop-func
forkedNode.on('message', (response) => {
if (response.error) {
// todo handle error
@@ -84,10 +85,9 @@ Given(/^I setup (\d+) node[s]*$/, { timeout: 120000 }, function (nodeCount, done
}
});
-Given(/^(\d+) bootstrap is running$/, { timeout: 80000 }, function (nodeCount, done) {
+Given(/^(\d+) bootstrap is running$/, { timeout: 80000 }, function bootstrapRunning (nodeCount, done) {
expect(this.state.bootstraps).to.have.length(0);
expect(nodeCount).to.be.equal(1); // Currently not supported more.
- console.log('Initializing bootstrap node');
const wallets = this.state.localBlockchain.getWallets();
const nodeName = 'origintrail-test-bootstrap';
const bootstrapNodeConfiguration = {
@@ -141,7 +141,7 @@ Given(/^(\d+) bootstrap is running$/, { timeout: 80000 }, function (nodeCount, d
});
});
-Given(/^I setup (\d+) additional node[s]*$/, { timeout: 120000 }, function (nodeCount, done) {
+Given(/^I setup (\d+) additional node[s]*$/, { timeout: 120000 }, function setupAdditionalNode (nodeCount, done) {
this.logger.log(`I setup ${nodeCount} additional node${nodeCount !== 1 ? 's' : ''}`);
const wallets = this.state.localBlockchain.getWallets();
const currentNumberOfNodes = Object.keys(this.state.nodes).length;
@@ -183,6 +183,7 @@ Given(/^I setup (\d+) additional node[s]*$/, { timeout: 120000 }, function (node
});
forkedNode.send(JSON.stringify(nodeConfiguration));
+ // eslint-disable-next-line no-loop-func
forkedNode.on('message', (response) => {
if (response.error) {
// todo handle error
diff --git a/test/bdd/steps/hooks.js b/test/bdd/steps/hooks.js
index 751204ceb..3174054ec 100644
--- a/test/bdd/steps/hooks.js
+++ b/test/bdd/steps/hooks.js
@@ -1,17 +1,14 @@
require('dotenv').config();
-const {
- Before, BeforeAll, After, AfterAll,
-} = require('@cucumber/cucumber');
+const { Before, BeforeAll, After, AfterAll } = require('@cucumber/cucumber');
const slugify = require('slugify');
const fs = require('fs');
const { ServerClientConfig, GraphDBServerClient } = require('graphdb').server;
process.env.NODE_ENV = 'test';
-BeforeAll(() => {
-});
+BeforeAll(() => {});
-Before(function (testCase, done) {
+Before(function beforeMethod (testCase, done) {
this.logger = console;
this.logger.log('Starting scenario: ', testCase.pickle.name, `${testCase.pickle.uri}`);
// Initialize variables
@@ -27,9 +24,19 @@ Before(function (testCase, done) {
done();
});
-After(function (testCase, done) {
- this.logger.log('Completed scenario: ', testCase.pickle.name, `${testCase.gherkinDocument.uri}:${testCase.gherkinDocument.feature.location.line}`);
- this.logger.log('with status: ', testCase.result.status, ' and duration: ', testCase.result.duration, ' miliseconds.');
+After(function afterMethod (testCase, done) {
+ this.logger.log(
+ 'Completed scenario: ',
+ testCase.pickle.name,
+ `${testCase.gherkinDocument.uri}:${testCase.gherkinDocument.feature.location.line}`,
+ );
+ this.logger.log(
+ 'with status: ',
+ testCase.result.status,
+ ' and duration: ',
+ testCase.result.duration,
+ ' miliseconds.',
+ );
if (testCase.result.status === 'failed') {
this.logger.log('Oops, exception occurred:');
@@ -56,7 +63,7 @@ After(function (testCase, done) {
}
}
this.logger.log('After test hook, cleaning repositories');
- // delete graphdb repositories
+ // delete ot-graphdb repositories
const serverConfig = new ServerClientConfig('http://localhost:7200')
.setTimeout(40000)
.setKeepAlive(true);
@@ -72,10 +79,8 @@ After(function (testCase, done) {
});
});
-AfterAll(async () => {
-});
+AfterAll(async () => {});
-process.on('unhandledRejection', (reason, p) => {
- console.log(`Unhandled Rejection:\n${reason.stack}`);
+process.on('unhandledRejection', () => {
process.abort();
});
diff --git a/test/bdd/steps/lib/local-blockchain.js b/test/bdd/steps/lib/local-blockchain.js
index a68a3ef62..30480e3d1 100644
--- a/test/bdd/steps/lib/local-blockchain.js
+++ b/test/bdd/steps/lib/local-blockchain.js
@@ -95,7 +95,6 @@ const wallets = accountPrivateKeys.map((privateKey) => ({
*/
class LocalBlockchain {
constructor(options = {}) {
- console.log('Initializing local bockchain');
this.logger = options.logger || console;
this.port = options.port || 7545;
this.name = options.name || 'ganache';
@@ -113,7 +112,7 @@ class LocalBlockchain {
async initialize() {
return new Promise((accept, reject) => {
- this.server.listen(this.port, async (err, blockchain) => {
+ this.server.listen(this.port, async (err) => {
if (err) {
reject(err);
return;
diff --git a/test/bdd/steps/lib/ot-node-process.js b/test/bdd/steps/lib/ot-node-process.js
index 9e231b52d..2bb9b324f 100644
--- a/test/bdd/steps/lib/ot-node-process.js
+++ b/test/bdd/steps/lib/ot-node-process.js
@@ -1,4 +1,4 @@
-const sleep = require('sleep-async')().Promise;
+const {setTimeout} = require('timers/promises');
const OTNode = require('../../../../ot-node');
const HttpApiHelper = require('../../../utilities/http-api-helper');
@@ -19,7 +19,7 @@ process.on('message', async (data) => {
started = true;
} catch (error) {
// eslint-disable-next-line no-await-in-loop
- await sleep.sleep(1000);
+ await setTimeout(1000);
}
}
diff --git a/test/bdd/steps/lib/state.js b/test/bdd/steps/lib/state.js
index 8b1eb7b99..9adfd0199 100644
--- a/test/bdd/steps/lib/state.js
+++ b/test/bdd/steps/lib/state.js
@@ -3,6 +3,7 @@
* This object looks like this:
*/
+// eslint-disable-next-line no-unused-vars
const state = {
// this is local blockchain object look at test/bdd/steps/lib/local-blockchain.js
localBlockchain: {},
@@ -20,14 +21,14 @@ const state = {
bootstraps: [],
lastPublishData: {
nodeId: 1,
- handlerId: '',
+ operationId: '',
keywords: ['', ''],
assertion: {},
result: {},
},
lastResolveData: {
nodeId: 1,
- handlerId: '',
+ operationId: '',
assertionIds: ['', ''],
result: {},
},
diff --git a/test/unit/calculateHash-test.js b/test/unit/calculateHash-test.js
deleted file mode 100644
index 89f96cd5c..000000000
--- a/test/unit/calculateHash-test.js
+++ /dev/null
@@ -1,13 +0,0 @@
-const { describe, it } = require('mocha');
-const { assert } = require('chai');
-const calculate = require('../../modules/CalculateHash');
-
-describe('Calculating data hash', () => {
- it('Calculating data hash of dataset using sha3-256', async () => {
- const value = 'v6-ot-node-test';
- const hashedValue = calculate.calculateDataHash(value);
-
- assert.isString(hashedValue);
- assert.equal(hashedValue, '0x07e18a8d5069a82de35ecad01b65a19ae18d1910beca6fdc5ff3dc4ef349606f');
- });
-});
diff --git a/test/unit/middleware/authentication-middleware.test.js b/test/unit/middleware/authentication-middleware.test.js
new file mode 100644
index 000000000..4f332a051
--- /dev/null
+++ b/test/unit/middleware/authentication-middleware.test.js
@@ -0,0 +1,85 @@
+const sinon = require('sinon');
+const { describe, it, afterEach } = require('mocha');
+const { expect } = require('chai');
+
+const authenticationMiddleware = require('../../../src/modules/http-client/implementation/middleware/authentication-middleware');
+const AuthService = require('../../../src/service/auth-service');
+
+describe('authentication middleware test', async () => {
+ const sandbox = sinon.createSandbox();
+
+ const getAuthService = (options) =>
+ sandbox.createStubInstance(AuthService, {
+ authenticate: options.isAuthenticated,
+ isPublicOperation: options.isPublicOperation,
+ });
+
+ afterEach(() => {
+ sandbox.restore();
+ });
+
+ it('calls next if isPublic evaluated to true', async () => {
+ const middleware = authenticationMiddleware(
+ getAuthService({
+ isPublicOperation: true,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+
+ const nextSpy = sandbox.spy();
+ await middleware(req, { status: spyStatus }, nextSpy);
+
+ expect(nextSpy.calledOnce).to.be.true;
+ expect(spyStatus.notCalled).to.be.true;
+ expect(spySend.notCalled).to.be.true;
+ });
+
+ it('calls next if isAuthenticated is evaluated as true', async () => {
+ const middleware = authenticationMiddleware(
+ getAuthService({
+ isPublicOperation: false,
+ isAuthenticated: true,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+
+ const nextSpy = sandbox.spy();
+ await middleware(req, { status: spyStatus }, nextSpy);
+
+ expect(nextSpy.calledOnce).to.be.true;
+ expect(spyStatus.notCalled).to.be.true;
+ expect(spySend.notCalled).to.be.true;
+ });
+
+ it('returns 401 if isAuthenticated is evaluated as false', async () => {
+ const middleware = authenticationMiddleware(
+ getAuthService({
+ isPublicOperation: false,
+ isAuthenticated: false,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+ const spyNext = sandbox.spy();
+
+ await middleware(req, { status: spyStatus }, spyNext);
+
+ const [statusCode] = spyStatus.args[0];
+
+ expect(statusCode).to.be.eq(401);
+ expect(spyStatus.calledOnce).to.be.true;
+ expect(spySend.calledOnce).to.be.true;
+ expect(spyNext.notCalled).to.be.true;
+ });
+});
diff --git a/test/unit/middleware/authorization-middleware.test.js b/test/unit/middleware/authorization-middleware.test.js
new file mode 100644
index 000000000..c805d9e5a
--- /dev/null
+++ b/test/unit/middleware/authorization-middleware.test.js
@@ -0,0 +1,85 @@
+const sinon = require('sinon');
+const { describe, it, afterEach } = require('mocha');
+const { expect } = require('chai');
+
+const authorizationMiddleware = require('../../../src/modules/http-client/implementation/middleware/authorization-middleware');
+const AuthService = require('../../../src/service/auth-service');
+
+describe('authentication middleware test', async () => {
+ const sandbox = sinon.createSandbox();
+
+ const getAuthService = (options) =>
+ sandbox.createStubInstance(AuthService, {
+ authenticate: options.isAuthenticated,
+ isAuthorized: options.isAuthorized,
+ isPublicOperation: options.isPublicOperation,
+ });
+
+ afterEach(() => {
+ sandbox.restore();
+ });
+
+ it('calls next if isPublicOperation is resolved to true', async () => {
+ const middleware = authorizationMiddleware(
+ getAuthService({
+ isPublicOperation: true,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+
+ const nextSpy = sandbox.spy();
+ await middleware(req, { status: spyStatus }, nextSpy);
+
+ expect(nextSpy.calledOnce).to.be.true;
+ expect(spyStatus.notCalled).to.be.true;
+ expect(spySend.notCalled).to.be.true;
+ });
+
+ it('calls next if isAuthenticated is evaluated as true', async () => {
+ const middleware = authorizationMiddleware(
+ getAuthService({
+ isPublicOperation: true,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+
+ const nextSpy = sandbox.spy();
+ await middleware(req, { status: spyStatus }, nextSpy);
+
+ expect(nextSpy.calledOnce).to.be.true;
+ expect(spyStatus.notCalled).to.be.true;
+ expect(spySend.notCalled).to.be.true;
+ });
+
+ it('returns 403 if isAuthenticated is evaluated as false', async () => {
+ const middleware = authorizationMiddleware(
+ getAuthService({
+ isPublicOperation: false,
+ isAuthenticated: false,
+ }),
+ );
+
+ const req = { headers: { authorization: 'Bearer token' }, url: '/publish' };
+
+ const spySend = sandbox.spy();
+ const spyStatus = sandbox.spy(() => ({ send: spySend }));
+ const spyNext = sandbox.spy();
+
+ await middleware(req, { status: spyStatus }, spyNext);
+
+ const [statusCode] = spyStatus.args[0];
+
+ expect(statusCode).to.be.eq(403);
+ expect(spyStatus.calledOnce).to.be.true;
+ expect(spySend.calledOnce).to.be.true;
+ expect(spyNext.notCalled).to.be.true;
+ });
+});
diff --git a/test/unit/service/auth-service.test.js b/test/unit/service/auth-service.test.js
new file mode 100644
index 000000000..a18b6b74d
--- /dev/null
+++ b/test/unit/service/auth-service.test.js
@@ -0,0 +1,321 @@
+require('dotenv').config();
+const { expect } = require('chai');
+const { describe, it, afterEach } = require('mocha');
+const uuid = require('uuid').v4;
+const sinon = require('sinon');
+
+const AuthService = require('../../../src/service/auth-service');
+const jwtUtil = require('../../../src/service/util/jwt-util');
+const RepositoryModuleManager = require('../../../src/modules/repository/repository-module-manager');
+
+const whitelistedIps = [
+ '::1',
+ '127.0.0.1',
+ '54.31.28.8',
+ 'a3c6:3c39:492c:831b:d1a1:7944:b984:f32a',
+];
+const invalidIps = ['247.8.32.50', null, undefined, {}, [], true, false, 123, '123...', NaN];
+const invalidTokens = ['token', 12345, {}, [], undefined, null, true, false, '123.321.32', NaN];
+
+const tests = [
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: false,
+ ipValid: false,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: true,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: false,
+ ipValid: false,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: false,
+ ipValid: true,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: true,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: true,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: true,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: true,
+ tokenRevoked: true,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: true,
+ tokenRevoked: false,
+ tokenExpired: true,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: false,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: true,
+ tokenRevoked: true,
+ tokenExpired: true,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: false,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: false,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: true,
+ tokenRevoked: false,
+ tokenExpired: false,
+ expected: true,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: true,
+ tokenRevoked: true,
+ tokenExpired: false,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: true,
+ tokenRevoked: false,
+ tokenExpired: true,
+ expected: false,
+ },
+ {
+ ipAuthEnabled: true,
+ tokenAuthEnabled: true,
+ ipValid: true,
+ tokenValid: true,
+ tokenRevoked: true,
+ tokenExpired: true,
+ expected: false,
+ },
+];
+
+const configObj = {
+ auth: {
+ ipWhitelist: whitelistedIps,
+ publicOperations: ['QUERY'],
+ },
+};
+
+const getConfig = (ipAuthEnabled, tokenAuthEnabled) => {
+ const configClone = JSON.parse(JSON.stringify(configObj));
+
+ configClone.auth.ipBasedAuthEnabled = ipAuthEnabled;
+ configClone.auth.tokenBasedAuthEnabled = tokenAuthEnabled;
+
+ return configClone;
+};
+
+const getRepository = (isTokenRevoked, tokenAbilitiesValid) =>
+ sinon.createStubInstance(RepositoryModuleManager, {
+ isTokenRevoked,
+ getTokenAbilities: tokenAbilitiesValid ? ['QUERY', 'PUBLISH', 'SEARCH'] : [],
+ });
+
+const getIps = (isValid) => {
+ if (isValid) {
+ return whitelistedIps;
+ }
+
+ return invalidIps;
+};
+
+const getTokens = (isValid, isExpired) => {
+ if (isValid) {
+ if (isExpired) {
+ return [jwtUtil.generateJWT(uuid(), '-2d')];
+ }
+ return [jwtUtil.generateJWT(uuid())];
+ }
+
+ return invalidTokens;
+};
+
+describe('authenticate()', async () => {
+ afterEach(() => {
+ sinon.restore();
+ });
+
+ for (const t of tests) {
+ let testText = '';
+
+ for (const field in t) {
+ if (field === 'expected') {
+ testText += `${field.toUpperCase()}: ${t[field]}`;
+ } else {
+ testText += `${field}: ${t[field]} | `;
+ }
+ }
+
+ it(testText, async () => {
+ const config = getConfig(t.ipAuthEnabled, t.tokenAuthEnabled);
+ const repositoryModuleManager = getRepository(t.tokenRevoked);
+ const ips = getIps(t.ipValid);
+ const tokens = getTokens(t.tokenValid, t.tokenExpired);
+ const authService = new AuthService({ config, repositoryModuleManager });
+
+ for (const ip of ips) {
+ for (const token of tokens) {
+ // eslint-disable-next-line no-await-in-loop
+ const isAuthenticated = await authService.authenticate(ip, token);
+ expect(isAuthenticated).to.be.equal(t.expected);
+ }
+ }
+ });
+ }
+
+ it('returns false if token is valid but is not found in the database', async () => {
+ const config = getConfig(false, true);
+ const repositoryModuleManager = getRepository(null, true);
+ const [token] = getTokens(true);
+ const authService = new AuthService({ config, repositoryModuleManager });
+
+ const isAuthenticated = await authService.authenticate('', token);
+ expect(isAuthenticated).to.be.false;
+ });
+});
+
+describe('isAuthorized()', async () => {
+ afterEach(() => {
+ sinon.restore();
+ });
+
+ it('returns true if tokenBasedAuthentication is disabled', async () => {
+ const config = getConfig(false, false);
+ const authService = new AuthService({ config });
+
+ const isAuthorized = await authService.isAuthorized(null, null);
+ expect(isAuthorized).to.be.equal(true);
+ });
+
+ it('returns true if user has ability to perform an action', async () => {
+ const config = getConfig(false, true);
+ const repositoryModuleManager = getRepository(false, true);
+ const jwt = jwtUtil.generateJWT(uuid());
+ const authService = new AuthService({ config, repositoryModuleManager });
+
+ const isAuthorized = await authService.isAuthorized(jwt, 'QUERY');
+ expect(isAuthorized).to.be.equal(true);
+ });
+
+ it("returns false if user doesn't have ability to perform an action", async () => {
+ const config = getConfig(false, true);
+ const jwt = jwtUtil.generateJWT(uuid());
+
+ const authService = new AuthService({
+ config,
+ repositoryModuleManager: getRepository(false, true),
+ });
+ const isAuthorized = await authService.isAuthorized(jwt, 'OPERATION');
+ expect(isAuthorized).to.be.equal(false);
+ });
+
+ it('returns false if user roles are not found', async () => {
+ const config = getConfig(false, true);
+ const jwt = jwtUtil.generateJWT(uuid());
+
+ const authService = new AuthService({
+ config,
+ repositoryModuleManager: getRepository(false, false),
+ });
+
+ const isAuthorized = await authService.isAuthorized(jwt, 'PUBLISH');
+ expect(isAuthorized).to.be.equal(false);
+ });
+});
+
+describe('isPublicOperation()', async () => {
+ afterEach(() => {
+ sinon.restore();
+ });
+
+ it('returns true if route is public', async () => {
+ const config = getConfig(false, false);
+ const authService = new AuthService({ config });
+
+ const isPublic = authService.isPublicOperation('QUERY');
+ expect(isPublic).to.be.equal(true);
+ });
+
+ it('returns false if route is not public', async () => {
+ const config = getConfig(false, false, true);
+ const authService = new AuthService({ config });
+
+ const isPublic = authService.isPublicOperation('PUBLISH');
+ expect(isPublic).to.be.equal(false);
+ });
+
+ it('returns false if public routes are not defined', async () => {
+ const config = getConfig(false, false, true);
+ config.auth.publicOperations = undefined;
+ const authService = new AuthService({ config });
+
+ const isPublic = authService.isPublicOperation('PUBLISH');
+ expect(isPublic).to.be.equal(false);
+ });
+});
diff --git a/test/unit/service/util/jwt-util.test.js b/test/unit/service/util/jwt-util.test.js
new file mode 100644
index 000000000..eb4577403
--- /dev/null
+++ b/test/unit/service/util/jwt-util.test.js
@@ -0,0 +1,108 @@
+require('dotenv').config();
+const uuid = require('uuid').v4;
+const { expect } = require('chai');
+
+const { describe, it } = require('mocha');
+
+const getPayload = (token) => {
+ const b64Payload = token.split('.')[1];
+
+ return JSON.parse(Buffer.from(b64Payload, 'base64').toString());
+};
+
+const jwtUtil = require('../../../../src/service/util/jwt-util');
+
+const nonJwts = [
+ '123',
+ 214214124124,
+ 'header.payload.signature',
+ null,
+ undefined,
+ true,
+ false,
+ {},
+ [],
+];
+
+describe('Auth JWT generation', async () => {
+ it('generates JWT token with tokenId payload', () => {
+ const tokenId = uuid();
+ const token = jwtUtil.generateJWT(tokenId);
+
+ expect(token).not.be.null;
+ expect(getPayload(token).jti).to.be.equal(tokenId);
+ });
+
+ it('generates null if invalid tokenId is provided', () => {
+ const nonUuids = [true, false, undefined, null, {}, [], 'string', 123];
+
+ for (const val of nonUuids) {
+ const token = jwtUtil.generateJWT(val);
+ expect(token).to.be.null;
+ }
+ });
+
+ it('generates payload without expiration date if expiresIn argument is not provided', () => {
+ const token = jwtUtil.generateJWT(uuid());
+ expect(getPayload(token).exp).to.be.undefined;
+ });
+
+ it('generates payload with expiration date if expiresIn argument is provided', () => {
+ const token = jwtUtil.generateJWT(uuid(), '2d');
+ expect(getPayload(token).exp).to.be.ok;
+ });
+});
+
+describe('JWT token validation', async () => {
+ it('returns true if JWT is valid', async () => {
+ const token = jwtUtil.generateJWT(uuid());
+ expect(jwtUtil.validateJWT(token)).to.be.true;
+ });
+
+ it('returns true if JWT is expired', async () => {
+ const token = jwtUtil.generateJWT(uuid(), '-2d');
+ expect(jwtUtil.validateJWT(token)).to.be.false;
+ });
+
+ it('returns false if JWT is not valid', async () => {
+ const token =
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c';
+ expect(jwtUtil.validateJWT(token)).to.be.false;
+ });
+
+ it('returns false if non JWT value is passed', async () => {
+ for (const val of nonJwts) {
+ expect(jwtUtil.validateJWT(val)).to.be.false;
+ }
+ });
+});
+
+describe('JWT payload extracting', async () => {
+ it('returns JWT payload if valid token is provided', async () => {
+ const token = jwtUtil.generateJWT(uuid());
+
+ expect(jwtUtil.getPayload(token)).to.be.ok;
+ });
+
+ it('returns null if invalid token is provided', async () => {
+ for (const val of nonJwts) {
+ expect(jwtUtil.getPayload(val)).to.be.null;
+ }
+ });
+});
+
+describe('JWT decoding', async () => {
+ it('returns decoded JWT (header, payload, signature) if valid token is provided', async () => {
+ const token = jwtUtil.generateJWT(uuid());
+
+ expect(jwtUtil.decode(token).header).to.be.ok;
+ expect(jwtUtil.decode(token).payload).to.be.ok;
+ expect(jwtUtil.decode(token).signature).to.be.ok;
+ });
+
+ it('returns null if invalid token is provided', async () => {
+ for (const val of nonJwts) {
+ expect(jwtUtil.decode(val)).to.be.null;
+ }
+ });
+});
diff --git a/test/unit/sparlql-query-service.test.js b/test/unit/sparlql-query-service.test.js
index 007236f7f..7ec1616b8 100644
--- a/test/unit/sparlql-query-service.test.js
+++ b/test/unit/sparlql-query-service.test.js
@@ -1,3 +1,4 @@
+/* eslint-disable */
const Blazegraph = require('../../external/blazegraph-service')
const GraphDB = require('../../external/graphdb-service');
const Fuseki = require('../../external/fuseki-service');
diff --git a/test/utilities/dkg-client-helper.js b/test/utilities/dkg-client-helper.js
index 3bb7d1afa..1e2805e02 100644
--- a/test/utilities/dkg-client-helper.js
+++ b/test/utilities/dkg-client-helper.js
@@ -37,8 +37,8 @@ class DkgClientHelper {
});
}
- async resolve(ids) {
- return this.client._resolveRequest({
+ async get(ids) {
+ return this.client._getRequest({
ids,
});
}
@@ -56,14 +56,13 @@ class DkgClientHelper {
});
}
- async getResult(handler_id, operation) {
+ async getResult(operation_id, operation) {
return this.client
._getResult({
- handler_id,
+ operation_id,
operation,
})
- .catch((error) => {
- console.log(`Error getting result. ${error}`);
+ .catch(() => {
});
}
}
diff --git a/tools/local-network-setup/.bootstrap_origintrail_noderc b/tools/local-network-setup/.bootstrap_origintrail_noderc
index a24fefe18..788c888c1 100644
--- a/tools/local-network-setup/.bootstrap_origintrail_noderc
+++ b/tools/local-network-setup/.bootstrap_origintrail_noderc
@@ -1,29 +1,83 @@
{
- "blockchain": [
- {
- "blockchainTitle": "Polygon",
- "networkId": "polygon::testnet",
- "rpcEndpoints": [
- "https://rpc-mumbai.maticvigil.com/",
- "https://matic-mumbai.chainstacklabs.com",
- "https://matic-testnet-archive-rpc.bwarelabs.com"
- ],
- "publicKey": "",
- "privateKey": ""
- }
- ],
- "graphDatabase": {
- "username": "admin",
- "password": ""
- },
"logLevel": "trace",
- "rpcPort": 8900,
- "network": {
- "port": 9000,
- "privateKey": "CAAS4QQwggJdAgEAAoGBALOYSCZsmINMpFdH8ydA9CL46fB08F3ELfb9qiIq+z4RhsFwi7lByysRnYT/NLm8jZ4RvlsSqOn2ZORJwBywYD5MCvU1TbEWGKxl5LriW85ZGepUwiTZJgZdDmoLIawkpSdmUOc1Fbnflhmj/XzAxlnl30yaa/YvKgnWtZI1/IwfAgMBAAECgYEAiZq2PWqbeI6ypIVmUr87z8f0Rt7yhIWZylMVllRkaGw5WeGHzQwSRQ+cJ5j6pw1HXMOvnEwxzAGT0C6J2fFx60C6R90TPos9W0zSU+XXLHA7AtazjlSnp6vHD+RxcoUhm1RUPeKU6OuUNcQVJu1ZOx6cAcP/I8cqL38JUOOS7XECQQDex9WUKtDnpHEHU/fl7SvCt0y2FbGgGdhq6k8nrWtBladP5SoRUFuQhCY8a20fszyiAIfxQrtpQw1iFPBpzoq1AkEAzl/s3XPGi5vFSNGLsLqbVKbvoW9RUaGN8o4rU9oZmPFL31Jo9FLA744YRer6dYE7jJMel7h9VVWsqa9oLGS8AwJALYwfv45Nbb6yGTRyr4Cg/MtrFKM00K3YEGvdSRhsoFkPfwc0ZZvPTKmoA5xXEC8eC2UeZhYlqOy7lL0BNjCzLQJBAMpvcgtwa8u6SvU5B0ueYIvTDLBQX3YxgOny5zFjeUR7PS+cyPMQ0cyql8jNzEzDLcSg85tkDx1L4wi31Pnm/j0CQFH/6MYn3r9benPm2bYSe9aoJp7y6ht2DmXmoveNbjlEbb8f7jAvYoTklJxmJCcrdbNx/iCj2BuAinPPgEmUzfQ="
+ "modules": {
+ "repository": {
+ "enabled": true,
+ "implementation": {
+ "sequelize-repository": {
+ "package": "./repository/implementation/sequelize/sequelize-repository",
+ "config": {}
+ }
+ }
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-graphdb",
+ "implementation": {
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {}
+ }
+ }
+ },
+ "network": {
+ "enabled": true,
+ "implementation": {
+ "libp2p-service": {
+ "package": "./network/implementation/libp2p-service",
+ "config": {
+ "port": 9000,
+ "privateKey": "CAAS4QQwggJdAgEAAoGBALOYSCZsmINMpFdH8ydA9CL46fB08F3ELfb9qiIq+z4RhsFwi7lByysRnYT/NLm8jZ4RvlsSqOn2ZORJwBywYD5MCvU1TbEWGKxl5LriW85ZGepUwiTZJgZdDmoLIawkpSdmUOc1Fbnflhmj/XzAxlnl30yaa/YvKgnWtZI1/IwfAgMBAAECgYEAiZq2PWqbeI6ypIVmUr87z8f0Rt7yhIWZylMVllRkaGw5WeGHzQwSRQ+cJ5j6pw1HXMOvnEwxzAGT0C6J2fFx60C6R90TPos9W0zSU+XXLHA7AtazjlSnp6vHD+RxcoUhm1RUPeKU6OuUNcQVJu1ZOx6cAcP/I8cqL38JUOOS7XECQQDex9WUKtDnpHEHU/fl7SvCt0y2FbGgGdhq6k8nrWtBladP5SoRUFuQhCY8a20fszyiAIfxQrtpQw1iFPBpzoq1AkEAzl/s3XPGi5vFSNGLsLqbVKbvoW9RUaGN8o4rU9oZmPFL31Jo9FLA744YRer6dYE7jJMel7h9VVWsqa9oLGS8AwJALYwfv45Nbb6yGTRyr4Cg/MtrFKM00K3YEGvdSRhsoFkPfwc0ZZvPTKmoA5xXEC8eC2UeZhYlqOy7lL0BNjCzLQJBAMpvcgtwa8u6SvU5B0ueYIvTDLBQX3YxgOny5zFjeUR7PS+cyPMQ0cyql8jNzEzDLcSg85tkDx1L4wi31Pnm/j0CQFH/6MYn3r9benPm2bYSe9aoJp7y6ht2DmXmoveNbjlEbb8f7jAvYoTklJxmJCcrdbNx/iCj2BuAinPPgEmUzfQ="
+ }
+ }
+ }
+ },
+ "blockchain": {
+ "defaultImplementation": "ganache",
+ "implementation": {
+ "ganache": {
+ "config": {
+ "blockchainTitle": "ganache",
+ "networkId": "ganache::testnet",
+ "hubContractAddress": "0xF21dD87cFC5cF5D073398833AFe5EFC543b78a00",
+ "rpcEndpoints": [
+ "http://localhost:7545"
+ ],
+ "evmOperationalWalletPublicKey": "0xd6879C0A03aDD8cFc43825A42a3F3CF44DB7D2b9",
+ "evmOperationalWalletPrivateKey": "0x02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e",
+ "evmManagementWalletPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ },
+ "otp": {
+ "config": {
+ "rpcEndpoints": [
+ "wss://parachain-tempnet-01.origin-trail.network"
+ ],
+ "evmOperationalWalletPublicKey": "0xd6879C0A03aDD8cFc43825A42a3F3CF44DB7D2b9",
+ "evmOperationalWalletPrivateKey": "0x02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e",
+ "evmManagementWalletPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ },
+ "polygon": {
+ "config": {
+ "rpcEndpoints": [
+ "wss://polygon-mumbai.g.alchemy.com/v2/bkYqCNrIC0TX3nZHuwo_cx7xqP4pYQ9s",
+ "https://matic-mumbai.chainstacklabs.com",
+ "https://rpc-mumbai.matic.today",
+ "https://matic-testnet-archive-rpc.bwarelabs.com"
+ ],
+ "evmOperationalWalletPublicKey": "0xd6879C0A03aDD8cFc43825A42a3F3CF44DB7D2b9",
+ "evmOperationalWalletPrivateKey": "0x02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e",
+ "evmManagementWalletPublicKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+ }
+ }
+ }
+ }
},
- "ipWhitelist": [
- "::1",
- "127.0.0.1"
- ]
+ "auth": {
+ "ipWhitelist": [
+ "::1",
+ "127.0.0.1"
+ ]
+ }
}
diff --git a/tools/local-network-setup/.dh_origintrail_noderc b/tools/local-network-setup/.dh_origintrail_noderc
index 4e20d1cd9..5c0f7e265 100644
--- a/tools/local-network-setup/.dh_origintrail_noderc
+++ b/tools/local-network-setup/.dh_origintrail_noderc
@@ -1,32 +1,78 @@
{
- "blockchain": [
- {
- "blockchainTitle": "Polygon",
- "networkId": "polygon::testnet",
- "rpcEndpoints": [
- "https://rpc-mumbai.maticvigil.com/",
- "https://matic-mumbai.chainstacklabs.com",
- "https://rpc-mumbai.matic.today",
- "https://matic-testnet-archive-rpc.bwarelabs.com"
- ],
- "publicKey": "...",
- "privateKey": "..."
+ "logLevel": "trace",
+ "modules": {
+ "httpClient": {
+ "enabled": true,
+ "implementation": {
+ "express-http-client": {
+ "package": "./http-client/implementation/express-http-client",
+ "config": {}
+ }
+ }
+ },
+ "repository": {
+ "enabled": true,
+ "implementation": {
+ "sequelize-repository": {
+ "package": "./repository/implementation/sequelize/sequelize-repository",
+ "config": {}
+ }
+ }
+ },
+ "tripleStore": {
+ "enabled": true,
+ "defaultImplementation": "ot-graphdb",
+ "implementation": {
+ "ot-graphdb": {
+ "package": "./triple-store/implementation/ot-graphdb/ot-graphdb",
+ "config": {}
+ }
+ }
+ },
+ "network": {
+ "enabled": true,
+ "implementation": {
+ "libp2p-service": {
+ "package": "./network/implementation/libp2p-service",
+ "config": {
+ "port": 9001,
+ "bootstrap": [
+ "/ip4/0.0.0.0/tcp/9000/p2p/QmWyf3dtqJnhuCpzEDTNmNFYc5tjxTrXhGcUUmGHdg2gtj"
+ ]
+ }
+ }
+ }
+ },
+ "blockchain": {
+ "defaultImplementation": "ganache",
+ "implementation": {
+ "ganache": {
+ "package": "./blockchain/implementation/ganache/ganache-service",
+ "config": {
+ "evmOperationalWalletPublicKey": "0xd6879C0A03aDD8cFc43825A42a3F3CF44DB7D2b9",
+ "evmOperationalWalletPrivateKey": "0x02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e"
+ }
+ },
+ "otp": {
+ "config": {
+ "rpcEndpoints": [
+ "wss://parachain-tempnet-01.origin-trail.network"
+ ],
+ "evmOperationalWalletPublicKey": "...",
+ "evmOperationalWalletPrivateKey": "...",
+ "evmManagementWalletPublicKey": "..."
+ }
+ },
+ "polygon": {
+ "config": {}
+ }
+ }
}
- ],
- "graphDatabase": {
- "username": "admin",
- "password": ""
},
- "logLevel": "trace",
- "rpcPort": 8901,
- "network": {
- "port": 9001,
- "bootstrap": [
- "/ip4/0.0.0.0/tcp/9000/p2p/QmWyf3dtqJnhuCpzEDTNmNFYc5tjxTrXhGcUUmGHdg2gtj"
+ "auth": {
+ "ipWhitelist": [
+ "::1",
+ "127.0.0.1"
]
- },
- "ipWhitelist": [
- "::1",
- "127.0.0.1"
- ]
+ }
}
diff --git a/tools/local-network-setup/README.md b/tools/local-network-setup/README.md
index ae50493a4..6fb9b8cb3 100644
--- a/tools/local-network-setup/README.md
+++ b/tools/local-network-setup/README.md
@@ -1,68 +1,97 @@
-Local Network Setup Tool
+DKG local network setup tool
========================
-#### Run a single command to create an entire testing environment for ot-node development.
+This tool will help you set up a local DKG v6 network running with the Ganache blockchain. It is useful for development and testing purposes and is used internally by the OriginTrail core developers.
+
-The Local Network Setup tool will set up the configuration files for the nodes and start the nodes in separate windows.
-From there you're ready to send API calls to your local nodes and test new features on the ot-node.
**Note: This tool is an internal tool used by the OriginTrail team and thus is developed for our workflow, meaning that it currently only supports MacOS**, but we encourage you to adapt it for your workflow as well.
-Quick Start
-===========
-
-## Prerequisites
-
-
-* An installed and running GraphDB
- * In order to download GraphDB, please visit their official website and fill out a form. Installation files will be provided to you via email.
-* An installed and running MySQL
- * You need to create empty table named operationaldb inside MySQL
-* You should have installed npm and Node.js (v14) or higher
-* You should have ot-node dependencies installed with the `npm install` command
-* You should have run db migrations:
- * `npx sequelize --config=./config/sequelizeConfig.js db:migrate`
-* generate a .env file in the ot-node root folder and add public, private keys for polygon blockchain and operational database password for root user (optional, default password is empty string):
-```dotenv
-NODE_ENV=development
-PUBLIC_KEY=
-PRIVATE_KEY=
-OPERATIONAL_DB_PASSWORD=
+
+Prerequisites
+=============
+
+* An installed and running triplestore (graph database)
+ * We recommend testing with GraphDB. In order to download GraphDB, please visit their official [website](https://graphdb.ontotext.com/). Alternatively other triple stores can be used (Blazegraph, Apache Jena and other RDF native graph databases)
+* An installed and running MySQL server
+* You should have installed npm and Node.js (v16) or higher
+
+
+# Setup instructions
+
+In order to run the local network you fist need to clone the "ot-node" and "dkg-evm-module" repositories.
+
+
+## 1. CLONE OT-NODE REPOSITORY & INSTALL DEPENDENCIES
+After cloning the **ot-node** repository, please checkout to "v6/refactor/develop" branch and install dependencies by running:
+```bash
+git clone https://github.com/OriginTrail/ot-node.git && cd ot-node/ && git checkout v6/refactor/develop && npm install && cd ..
```
+
+## 2. CLONE DKG REPOSITORIES & INSTALL DKG SMART CONTRACT DEPENDENCIES
+**Note:** DO NOT clone **dkg-evm-module** repository inside of the **ot-node** directory.
+Clone the **dkg-evm-module** repository:
+```bash
+git clone https://github.com/OriginTrail/dkg-evm-module.git
+```
-## How to start
+then install dependencies with:
+```bash
+cd dkg-evm-module && npm install
+```
-From the ot-node directory, run the below command
+and run a local Ganache blockchain instance by executing:
+```bash
+npm run ganache
+```
+
+
+### 2.2 Create the .env file inside the "dkg-evm-module" directory and deploy DKG smart contract:
+```bash
+nano .env
+```
+and paste the following content inside (save and close):
```bash
-bash setup-macos-environment.sh
+ACCESS_KEY = http://localhost:7545
+PRIVATE_KEY = 02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e
```
+**Note:** The private key above is used ONLY for convenience and SHOULD be changed to a secure key when used in production.
-Usage
-=====
+After preparing the .env file, deploy DKG smart contracts by executing the following command (while Ganache is running):
+```bash
+npm run deploy
+```
+
-## Specifying the number of nodes
+## 3. START THE LOCAL NETWORK
-The LNS tool deploys 4 nodes, each connected to Polygon Mumbai testnet.
+## Specifying the number of nodes
You can specify to run anywhere between one and ten nodes with the `--nodes` parameter.
+**Note:** All nodes assume MySQL username root and no password. To change the MySQL login information update the .dh_origintrail_noderc template file sequelize-repository config object with your username and password
+
+The first node will be named `bootstrap`, while subsequent nodes will be named `dh1, dh2, ...`.
+
```bash
-bash setup-macos-environment.sh --nodes=10
+bash ./tools/local-network-setup/setup-macos-environment.sh --nodes=6
```
+**Note:** With the above command, we will deploy a 6 nodes network (1 bootstrap and 5 subsequent nodes)
-The first node will be named `bootstrap`, while subsequent nodes will be named `dh1, dh2, ...`.
+
+
+
Contribution
============
-OriginTrail is an open source project. We happily invite you to join us in our mission of building decentralized knowledge graph. If you would like to contribute, you are more than welcome.
+OriginTrail is an open source project. We happily invite you to join us in our mission of building decentralized knowledge graph - we're excited for your contributions! Join us in discord to meet the dev community
### Useful links
-
[OriginTrail website](https://origintrail.io)
[OriginTrail documentation page](http://docs.origintrail.io)
diff --git a/tools/local-network-setup/generate-config-files.js b/tools/local-network-setup/generate-config-files.js
index 3e4975f8a..b96c0471f 100644
--- a/tools/local-network-setup/generate-config-files.js
+++ b/tools/local-network-setup/generate-config-files.js
@@ -1,7 +1,8 @@
+/* eslint-disable */
const path = require('path');
const fs = require('fs');
const { execSync } = require('child_process');
-require('dotenv').config('.env');
+const keys = require('./keys.json');
const numberOfNodes = process.argv.length === 3 ? parseInt(process.argv[2], 10) : 4;
@@ -13,15 +14,22 @@ const bootstrapTemplate = JSON.parse(fs.readFileSync(bootstrapTemplatePath));
console.log('Preparing keys for blockchain');
-if (!process.env.PRIVATE_KEY || !process.env.PUBLIC_KEY) {
- console.log('Missing blockchain keys in .env file');
+if (!keys) {
+ console.log('Missing blockchain keys');
process.exit(1);
}
-template.blockchain[0].publicKey = process.env.PUBLIC_KEY;
-template.blockchain[0].privateKey = process.env.PRIVATE_KEY;
-bootstrapTemplate.blockchain[0].publicKey = process.env.PUBLIC_KEY;
-bootstrapTemplate.blockchain[0].privateKey = process.env.PRIVATE_KEY;
+for (const implementation in bootstrapTemplate.modules.blockchain.implementation) {
+ bootstrapTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmOperationalWalletPublicKey = keys.publicKey[0];
+ bootstrapTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmOperationalWalletPrivateKey = keys.privateKey[0];
+ bootstrapTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmManagementWalletPublicKey = keys.managementKey;
+}
fs.writeFileSync(bootstrapTemplatePath, JSON.stringify(bootstrapTemplate, null, 2));
@@ -43,9 +51,47 @@ for (let i = 0; i < numberOfNodes; i += 1) {
const parsedTemplate = JSON.parse(JSON.stringify(template));
- parsedTemplate.rpcPort = 8900 + i;
- parsedTemplate.network.port = 9000 + i;
- parsedTemplate.graphDatabase.name = `node${i}`;
+ const polygonEndpoints = [
+ 'wss://polygon-mumbai.g.alchemy.com/v2/HWQYg3FX49VALP0FMMZxKhZDVrIRDiMo',
+ 'wss://polygon-mumbai.g.alchemy.com/v2/A5XW59zlZH8Q4NYvHPOByry6RpYHVsZG',
+ 'wss://polygon-mumbai.g.alchemy.com/v2/pjhHpEpgUyQcKde6lZGNK9i5DStsfg8P',
+ 'wss://polygon-mumbai.g.alchemy.com/v2/PS344yOFOjNVjy7l4HywB824lD-tELBj',
+ 'wss://polygon-mumbai.g.alchemy.com/v2/o1tqYf3FW4dFZMhKw5Pjrv1M9grn485F',
+ ];
+
+ for (const implementation in parsedTemplate.modules.blockchain.implementation) {
+ if (implementation === 'polygon') {
+ parsedTemplate.modules.blockchain.implementation[implementation].config.rpcEndpoints = [
+ polygonEndpoints[i - 1],
+ 'https://matic-mumbai.chainstacklabs.com',
+ 'https://rpc-mumbai.matic.today',
+ 'https://matic-testnet-archive-rpc.bwarelabs.com',
+ ];
+ }
+ parsedTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmOperationalWalletPublicKey = keys.publicKey[i + 1];
+ parsedTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmOperationalWalletPrivateKey = keys.privateKey[i + 1];
+ parsedTemplate.modules.blockchain.implementation[
+ implementation
+ ].config.evmManagementWalletPublicKey = keys.managementKey;
+ }
+
+ parsedTemplate.modules.httpClient.implementation['express-http-client'].config.port = 8900 + i;
+ parsedTemplate.modules.network.implementation['libp2p-service'].config.port = 9000 + i;
+ parsedTemplate.modules.repository.implementation[
+ 'sequelize-repository'
+ ].config.database = `operationaldb${i}`;
+ parsedTemplate.modules.tripleStore.implementation[
+ 'ot-graphdb'
+ ].config.repository = `repository${i}`;
+ parsedTemplate.appDataPath = `data${i}`;
+
+ if (process.env.LOG_LEVEL) {
+ parsedTemplate.logLevel = process.env.LOG_LEVEL;
+ }
fs.writeFileSync(`${configPath}`, JSON.stringify(parsedTemplate, null, 2));
}
diff --git a/tools/local-network-setup/keys.json b/tools/local-network-setup/keys.json
new file mode 100644
index 000000000..d0d39e665
--- /dev/null
+++ b/tools/local-network-setup/keys.json
@@ -0,0 +1,61 @@
+{
+ "publicKey": ["0xd6879C0A03aDD8cFc43825A42a3F3CF44DB7D2b9",
+ "0x2f2697b2a7BB4555687EF76f8fb4C3DFB3028E57",
+ "0xBCc7F04c73214D160AA6C892FcA6DB881fb3E0F5",
+ "0xE4745cE633c2a809CDE80019D864538ba95201E3",
+ "0x193a22749001fA75497fb8fcCE11235947a19b3d",
+ "0xFFEE9a020c3DdDE30D0391254E05c8Fe8DC4a680",
+ "0xBBC863B0776f5F8F816dD71e85AaA81449A87D9A",
+ "0x64B592e8e9AF51Eb0DBa5d4c18b817C01e8e75a8",
+ "0xb664cf668534FDE04cF43173e2187b7a9196bfC3",
+ "0xCE81B24feDb116FaC5A887ED7706B05A46060079",
+ "0xcF9c758Ae7C21D8048Fc1C3cb6164Ff37A5b205e",
+ "0xC8b866F2dD57d2889a7cccB989cfb42dB4579411",
+ "0xD242D54ed86A64909d0f990bCe608b065ed07559",
+ "0x3368d4DBeC10220D7Ba73c3FC65977ED215C62Fc",
+ "0x9d2934024ccC3995056E7E067184B3B0bB8B66Ab",
+ "0x73DF1C18F18AA54DB018b3273E44b1A4713c5fE2",
+ "0xd2c714a04fEA61C599815ec57fAf25ba4F4d496B",
+ "0xBA9d00b748217381674E277D2447fcaCB78bcAc7",
+ "0x34734d828d39ce0B3C8ad22B8578Cd2E3236F277",
+ "0xCF4d6f24Ca163D14389C38DD0C7e89718d17090a",
+ "0xD15Eb6bF044ed36DfDd2e3a3b84aB81AaB15881D",
+ "0x06FD6319da4199BD55AA283787b9fd802082191d",
+ "0xc3C828F5B357638265cC09Dd479F60A8E1190801",
+ "0x50d2af71026c60648c612190ce92e8257c69B419",
+ "0x4e6c7afa684B54980aE15aEA191911E3D9B47aba",
+ "0x4a68eD404bBd120a3bdab1748dc36EE43a5AE42d",
+ "0xDdbc8EA86Ec762AA4a7aC985fF3c7E7087be9e3B",
+ "0xf68B2609F1E240e501D78c78276D7314ba298025",
+ "0xBaF76aC0d0ef9a2FFF76884d54C9D3e270290a43"],
+ "privateKey": ["0x02b39cac1532bef9dba3e36ec32d3de1e9a88f1dda597d3ac6e2130aed9adc4e",
+ "0xb1c53fd90d0172ff60f14f61f7a09555a9b18aa3c371991d77209cfe524e71e6",
+ "0x8ab3477bf3a1e0af66ab468fafd6cf982df99a59fee405d99861e7faf4db1f7b",
+ "0xc80796c049af64d07c76ab4cfb00655895368c60e50499e56cdc3c38d09aa88e",
+ "0x239d785cea7e22f23d1fa0f22a7cb46c04d81498ce4f2de07a9d2a7ceee45004",
+ "0x021336479aa1553e42bfcd3b928dee791db84a227906cb7cec5982d382ecf106",
+ "0x217479bee25ed6d28302caec069c7297d0c3aefdda81cf91ed754c4d660862ae",
+ "0xa050f7b3a0479a55e9ddd074d218fbfea302f061e9f21a117a2ec1f0b986a363",
+ "0x0dbaee2066aacd16d43a9e23649f232913bca244369463320610ffe6ffb0d69d",
+ "0x63b854ff0d973dbd4808a6def4c6a7f65bebcaec07520fbf1c0056331af65a7b",
+ "0x7dc40fb38b9a96a63529abb4549d84e0c08e8b923e178150e867685730eadf00",
+ "0xfc755938afe379af87c44623bbe70ffa1b3f452a9b9807d75bb27ebe18681286",
+ "0x8656c6fba3b82ca3ee5cc60d5e56aaa9e50f73856f69eeb919dbf4c2d1728728",
+ "0x89d29d67bbf973542efad822c706d7aa5eb0c655ff4b3f3af84fa64dce1149e5",
+ "0xf0c1ca9b1e6c08b8cf8cf0ebf946d1d2bae2cb33c3cd1721962dd41a4bf1982c",
+ "0xd9232a58d9a25751dbba8967d43cd4cd87af081db1b22fce72ce0bc92640a7a7",
+ "0xa8755e9fb4643aab2b7109afb4b32821df3c236fae60156f0324086035b88e67",
+ "0x5d9927a5244623afb1e7f590c7946682620d759724ac86c96792cee6900fd973",
+ "0x223c9895f73f3b60a7fe928db1a9864669d1d21dce153a9928285d0d3c20b066",
+ "0xf5f845f7e25649083fee349afea795e4f587ba1708f1b8c8686e88288fb36197",
+ "0x867cede8866075a0e5aaacb429019582a87f47929f885902d7d6ba87174b465b",
+ "0x4f2c9e35799519aab320afe1b2522d24b8edc2b331ce74feaa73d387c0d6515a",
+ "0x46347bff764b0e793ae8607146d49ae677b51fbc31bb150eaddce9d52b2d2ab1",
+ "0x394117b491034f898c5945219f583d521b7c514c37c7002c398156b05f877863",
+ "0x69d771fd096a6ff182954d19dc7f9be68de624648d816ec8ef1b718a0277f882",
+ "0x411841f090a0cc9f2404f24d7d2db707652e76fd1819446149f2c8b0b44124e2",
+ "0x7329d841a68f2f25a57f34195ce63eca4b477dd587f3a78554181a588dcd9002",
+ "0x50409e18b20ba522c909a296b3c378af1c31fb458aa6478988c260b78956ab3d",
+ "0x9b9af041edc816692276ac3c8f1d5565e3c01ddff80ec982943a29bd8d1d8863"],
+ "managementKey": "0x1B420da5f7Be66567526E32bc68ab29F1A63765A"
+}
\ No newline at end of file
diff --git a/tools/ot-parachain-account-mapping/create-account-mapping-signature.js b/tools/ot-parachain-account-mapping/create-account-mapping-signature.js
new file mode 100644
index 000000000..e6b168489
--- /dev/null
+++ b/tools/ot-parachain-account-mapping/create-account-mapping-signature.js
@@ -0,0 +1,87 @@
+/* eslint-disable import/no-extraneous-dependencies */
+const { Wallet } = require('@ethersproject/wallet');
+const { joinSignature } = require('@ethersproject/bytes');
+const { _TypedDataEncoder } = require('@ethersproject/hash');
+const { u8aToHex } = require('@polkadot/util');
+const { decodeAddress } = require('@polkadot/util-crypto');
+
+if (!process.argv[2]) {
+ console.log('Missing argument PRIVATE_ETH_KEY');
+ console.log(
+ 'Usage: npm run create-account-mapping-signature PRIVATE_ETH_KEY SUBSTRATE_PUBLIC_KEY',
+ );
+ process.exit(1);
+}
+
+if (!process.argv[3]) {
+ console.log('Missing argument SUBSTRATE_PUBLIC_KEY');
+ console.log(
+ 'Usage: npm run create-account-mapping-signature PRIVATE_ETH_KEY SUBSTRATE_PUBLIC_KEY',
+ );
+ process.exit(1);
+}
+
+const PRIVATE_ETH_KEY = process.argv[2];
+const PUBLIC_SUBSTRATE_ADDRESS = process.argv[3];
+const HEX_SUBSTRATE_ADDRESS = u8aToHex(decodeAddress(PUBLIC_SUBSTRATE_ADDRESS));
+// Usage
+// node create-signature.js private_eth_key(with 0x) substrate_public_key
+
+async function sign() {
+ const payload = {
+ types: {
+ EIP712Domain: [
+ {
+ name: 'name',
+ type: 'string',
+ },
+ {
+ name: 'version',
+ type: 'string',
+ },
+ {
+ name: 'chainId',
+ type: 'uint256',
+ },
+ {
+ name: 'salt',
+ type: 'bytes32',
+ },
+ ],
+ Transaction: [
+ {
+ name: 'substrateAddress',
+ type: 'bytes',
+ },
+ ],
+ },
+ primaryType: 'Transaction',
+ domain: {
+ name: 'OTP EVM claim',
+ version: '1',
+ chainId: '2160',
+ salt: '0x0542e99b538e30d713d3e020f18fa6717eb2c5452bd358e0dd791628260a36f0',
+ },
+ message: {
+ substrateAddress: `${HEX_SUBSTRATE_ADDRESS}`,
+ },
+ };
+
+ const wallet = new Wallet(`${PRIVATE_ETH_KEY}`);
+
+ const digest = _TypedDataEncoder.hash(
+ payload.domain,
+ {
+ Transaction: payload.types.Transaction,
+ },
+ payload.message,
+ );
+
+ const signature = joinSignature(wallet._signingKey().signDigest(digest));
+ console.log('Paste the signature to polkadot.js api evmAddress claimAccount interface:');
+ console.log('==== Signature ====');
+ console.log(signature);
+ console.log('===================');
+}
+
+sign();
diff --git a/tools/token-generation.js b/tools/token-generation.js
new file mode 100644
index 000000000..b6cd6be96
--- /dev/null
+++ b/tools/token-generation.js
@@ -0,0 +1,174 @@
+/* eslint no-console: 0 */
+const ms = require('ms');
+const DeepExtend = require('deep-extend');
+const rc = require('rc');
+const fs = require('fs-extra');
+const uuid = require('uuid').v4;
+const Logger = require('../src/logger/logger');
+const configjson = require('../config/config.json');
+const pjson = require('../package.json');
+const RepositoryModuleManager = require('../src/modules/repository/repository-module-manager');
+require('dotenv').config();
+const jwtUtil = require('../src/service/util/jwt-util');
+
+const getLogger = () => new Logger('silent', false);
+let repository;
+
+const getConfig = () => {
+ let config;
+ let userConfig;
+
+ if (process.env.USER_CONFIG_PATH) {
+ const configurationFilename = process.env.USER_CONFIG_PATH;
+ const pathSplit = configurationFilename.split('/');
+ userConfig = JSON.parse(fs.readFileSync(configurationFilename));
+ userConfig.configFilename = pathSplit[pathSplit.length - 1];
+ }
+
+ const defaultConfig = JSON.parse(JSON.stringify(configjson[process.env.NODE_ENV]));
+
+ if (userConfig) {
+ config = DeepExtend(defaultConfig, userConfig);
+ } else {
+ config = rc(pjson.name, defaultConfig);
+ }
+
+ if (!config.configFilename) {
+ // set default user configuration filename
+ config.configFilename = '.origintrail_noderc';
+ }
+ return config;
+};
+
+const loadRepository = async () => {
+ repository = new RepositoryModuleManager({ logger: getLogger(), config: getConfig() });
+ await repository.initialize();
+};
+
+/**
+ * Returns argument from argv
+ * @param argName
+ * @returns {string|null}
+ */
+const getArg = (argName) => {
+ const args = process.argv;
+ const arg = args.find((a) => a.startsWith(argName));
+
+ if (!arg) {
+ return null;
+ }
+
+ const argSplit = arg.split('=');
+
+ if (!arg || argSplit.length < 2 || !argSplit[1]) {
+ return null;
+ }
+
+ return argSplit[1];
+};
+/**
+ * Returns user's name from arguments
+ * @returns {string}
+ */
+const getUserFromArgs = () => {
+ const arg = getArg('--user');
+
+ if (!arg) {
+ return 'node-runner';
+ }
+
+ return arg;
+};
+
+/**
+ * Returns expiresAt from arguments
+ * If no expiresAt is provided, null is returned
+ * Expressed in seconds or a string describing a time span zeit/ms
+ * @returns {string|null}
+ */
+const getExpiresInArg = () => {
+ const arg = getArg('--expiresIn');
+
+ if (!arg) {
+ return null;
+ }
+
+ if (!ms(arg)) {
+ console.log('\x1b[31m[ERROR]\x1b[0m Invalid value for expiresIn argument');
+ process.exit(1);
+ }
+
+ return arg;
+};
+
+/**
+ * Returns expiresAt from arguments
+ * If no expiresAt is provided, null is returned
+ * Expressed in seconds or a string describing a time span zeit/ms
+ * @returns {string|null}
+ */
+const getTokenName = () => {
+ const arg = getArg('--tokenName');
+
+ if (!arg) {
+ console.log('\x1b[31m[ERROR]\x1b[0m Missing mandatory tokenName argument.');
+ process.exit(1);
+ }
+
+ return arg;
+};
+
+const saveTokenData = async (tokenId, userId, tokenName, expiresIn) => {
+ let expiresAt = null;
+
+ if (expiresIn) {
+ const time = new Date().getTime() + ms(expiresIn);
+ expiresAt = new Date(time);
+ }
+
+ await repository.saveToken(tokenId, userId, tokenName, expiresAt);
+};
+
+const printMessage = (token, hasExpiryDate) => {
+ console.log('\x1b[32mAccess token successfully created.\x1b[0m ');
+
+ if (!hasExpiryDate) {
+ console.log('\x1b[33m[WARNING] Created token has no expiry date. \x1b[0m ');
+ }
+
+ console.log(token);
+ console.log(
+ '\x1b[32mMake sure to copy your personal access token now. You won’t be able to see it again!\x1b[0m ',
+ );
+};
+
+const getUserId = async (username) => {
+ const user = await repository.getUser(username);
+
+ if (!user) {
+ console.log(`\x1b[31m[ERROR]\x1b[0m User ${username} doesn't exist.`);
+ process.exit(1);
+ }
+
+ return user.id;
+};
+
+const generateToken = async () => {
+ const username = getUserFromArgs();
+ const expiresIn = getExpiresInArg();
+ const tokenName = getTokenName();
+
+ await loadRepository();
+
+ const userId = await getUserId(username);
+ const tokenId = uuid();
+
+ await saveTokenData(tokenId, userId, tokenName, expiresIn);
+
+ const token = jwtUtil.generateJWT(tokenId, expiresIn);
+
+ printMessage(token, expiresIn);
+ process.exit(0);
+};
+
+generateToken();