From a0ffbc6108359a8089d9137b5851e478a94e25b0 Mon Sep 17 00:00:00 2001 From: Mihajlo Pavlovic Date: Tue, 10 Dec 2024 16:31:39 +0100 Subject: [PATCH 1/2] private --- package-lock.json | 1910 ++++++----------- package.json | 2 +- .../blockchain-event-listener-command.js | 48 +- src/commands/common/validate-asset-command.js | 1 + .../validate-assertion-metadata-command.js | 10 +- .../v1-0-0-handle-get-request-command.js | 10 +- .../protocols/get/sender/local-get-command.js | 14 +- ...ish-validate-assertion-metadata-command.js | 33 + .../sender/publish-validate-asset-command.js | 2 +- .../v1.0.0/v1-0-0-publish-request-command.js | 2 +- .../publish/store-assertion-command.js | 26 +- .../update/update-assertion-command.js | 91 + ...ate-validate-assertion-metadata-command.js | 33 + src/constants/constants.js | 37 +- .../v0/request-schema/publish-schema-v0.js | 21 +- .../implementation/ot-triple-store.js | 133 +- .../triple-store-module-manager.js | 76 +- src/service/data-service.js | 49 +- src/service/triple-store-service.js | 251 ++- 19 files changed, 1359 insertions(+), 1390 deletions(-) rename src/commands/protocols/{publish => common}/validate-assertion-metadata-command.js (79%) create mode 100644 src/commands/protocols/publish/publish-validate-assertion-metadata-command.js create mode 100644 src/commands/protocols/update/update-assertion-command.js create mode 100644 src/commands/protocols/update/update-validate-assertion-metadata-command.js diff --git a/package-lock.json b/package-lock.json index 58b014139..b4c4a1a7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@polkadot/util-crypto": "^10.1.7", "@questdb/nodejs-client": "^3.0.0", "app-root-path": "^3.1.0", - "assertion-tools": "^8.0.0-alpha.2", + "assertion-tools": "^8.0.0-gamma.0", "async": "^3.2.4", "async-mutex": "^0.3.2", "awilix": "^7.0.3", @@ -121,9 +121,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -175,13 +175,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -295,12 +295,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, "dependencies": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.3" }, "bin": { "parser": "bin/babel-parser.js" @@ -335,16 +335,16 @@ } }, "node_modules/@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -362,9 +362,9 @@ } }, "node_modules/@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.25.9", @@ -6547,10 +6547,9 @@ } }, "node_modules/assertion-tools": { - "version": "8.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-alpha.2.tgz", - "integrity": "sha512-g2vUPGdCB1lAP2jSQMYcfTjlhgmm/92t8l/rxucjYh+QdknuCgkZHOwJzVUxWmsOIYJz2fp0bbU0HKfAQt8LMQ==", - "license": "ISC", + "version": "8.0.0-gamma.0", + "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-gamma.0.tgz", + "integrity": "sha512-tUF2IcrddKhz2usRsgjrEGdfMuScz2P2nt8/9oJVb/NiSUp4l8i1nDDvmpAT3oompWLbd9HAxo2I0P4S4mJCYA==", "dependencies": { "ethers": "^5.7.2", "jsonld": "^8.1.0", @@ -6560,18 +6559,6 @@ "uuid": "^8.3.2" } }, - "node_modules/assertion-tools/node_modules/rdf-canonize": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz", - "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==", - "license": "BSD-3-Clause", - "dependencies": { - "setimmediate": "^1.0.5" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", @@ -6685,9 +6672,9 @@ } }, "node_modules/axios": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", - "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -7231,15 +7218,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -7248,6 +7234,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz", + "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -7277,9 +7275,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001684", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", - "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "dev": true, "funding": [ { @@ -9598,14 +9596,14 @@ "optional": true }, "node_modules/dkg.js": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.3.tgz", - "integrity": "sha512-A3dN9jcxOXD8e5JQpf7PBRjvmDabDeMGboA8p5THbFHwBostikG4UHC7BttN4CKyvgnQudKpFjAYRGkemGku2g==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.4.tgz", + "integrity": "sha512-zvTG/ehsX6dcjnUKErVs1d9tpfsID2DrDf0sYjKVyqeYcnKntGsRN4fHwrQLPLjkVCnjTvnr5R34eUu03BmGqg==", "dev": true, "dependencies": { - "assertion-tools": "^2.1.0", + "assertion-tools": "^2.2.1", "axios": "^0.27.2", - "dkg-evm-module": "^4.3.3", + "dkg-evm-module": "^4.4.0", "ethers": "^6.1.0", "jsonld": "^8.1.0", "web3": "^1.7.3" @@ -9669,13 +9667,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/api-augment/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/api-base": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/api-base/-/api-base-11.3.1.tgz", @@ -9692,13 +9683,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/api-base/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/api-derive": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/api-derive/-/api-derive-11.3.1.tgz", @@ -9720,20 +9704,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/api-derive/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/@polkadot/api/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/keyring": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/keyring/-/keyring-12.6.2.tgz", @@ -9752,13 +9722,6 @@ "@polkadot/util-crypto": "12.6.2" } }, - "node_modules/dkg.js/node_modules/@polkadot/keyring/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/networks": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/networks/-/networks-12.6.2.tgz", @@ -9773,13 +9736,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/networks/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/rpc-augment": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/rpc-augment/-/rpc-augment-11.3.1.tgz", @@ -9796,13 +9752,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/rpc-augment/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/rpc-core": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/rpc-core/-/rpc-core-11.3.1.tgz", @@ -9820,13 +9769,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/rpc-core/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/rpc-provider": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/rpc-provider/-/rpc-provider-11.3.1.tgz", @@ -9853,13 +9795,6 @@ "@substrate/connect": "0.8.10" } }, - "node_modules/dkg.js/node_modules/@polkadot/rpc-provider/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/types": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/types/-/types-11.3.1.tgz", @@ -9894,13 +9829,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/types-augment/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/types-codec": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/types-codec/-/types-codec-11.3.1.tgz", @@ -9915,13 +9843,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/types-codec/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/types-create": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/types-create/-/types-create-11.3.1.tgz", @@ -9936,13 +9857,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/types-create/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/types-known": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/types-known/-/types-known-11.3.1.tgz", @@ -9960,13 +9874,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/types-known/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/types-support": { "version": "11.3.1", "resolved": "https://registry.npmjs.org/@polkadot/types-support/-/types-support-11.3.1.tgz", @@ -9980,20 +9887,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/types-support/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/@polkadot/types/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/util": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/util/-/util-12.6.2.tgz", @@ -10036,20 +9929,6 @@ "@polkadot/util": "12.6.2" } }, - "node_modules/dkg.js/node_modules/@polkadot/util-crypto/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/@polkadot/util/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/wasm-bridge": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/@polkadot/wasm-bridge/-/wasm-bridge-7.4.1.tgz", @@ -10067,13 +9946,6 @@ "@polkadot/x-randomvalues": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-bridge/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto/-/wasm-crypto-7.4.1.tgz", @@ -10110,13 +9982,6 @@ "@polkadot/util": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-asmjs/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-init": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-init/-/wasm-crypto-init-7.4.1.tgz", @@ -10137,13 +10002,6 @@ "@polkadot/x-randomvalues": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-init/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-wasm": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/@polkadot/wasm-crypto-wasm/-/wasm-crypto-wasm-7.4.1.tgz", @@ -10160,20 +10018,6 @@ "@polkadot/util": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto-wasm/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-crypto/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/wasm-util": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/@polkadot/wasm-util/-/wasm-util-7.4.1.tgz", @@ -10189,13 +10033,6 @@ "@polkadot/util": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/wasm-util/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-bigint": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-bigint/-/x-bigint-12.6.2.tgz", @@ -10209,13 +10046,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-bigint/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-fetch": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-fetch/-/x-fetch-12.6.2.tgz", @@ -10230,13 +10060,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-fetch/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-global": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-global/-/x-global-12.6.2.tgz", @@ -10249,13 +10072,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-global/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-randomvalues": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-randomvalues/-/x-randomvalues-12.6.2.tgz", @@ -10273,13 +10089,6 @@ "@polkadot/wasm-util": "*" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-randomvalues/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-textdecoder": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-textdecoder/-/x-textdecoder-12.6.2.tgz", @@ -10293,13 +10102,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-textdecoder/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-textencoder": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-textencoder/-/x-textencoder-12.6.2.tgz", @@ -10313,13 +10115,6 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-textencoder/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, "node_modules/dkg.js/node_modules/@polkadot/x-ws": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@polkadot/x-ws/-/x-ws-12.6.2.tgz", @@ -10334,41 +10129,11 @@ "node": ">=18" } }, - "node_modules/dkg.js/node_modules/@polkadot/x-ws/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/@polkadot/x-ws/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/dkg.js/node_modules/@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", + "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", "dev": true, - "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" } @@ -10379,7 +10144,6 @@ "integrity": "sha512-DIyQ13DDlXqVFnLV+S6/JDgiGowVRRrh18kahieJxhgvzcWicw5eLc6jpfQ0moVVLBYkO7rctB5Wreldwpva8w==", "deprecated": "versions below 1.x are no longer maintained", "dev": true, - "license": "GPL-3.0-only", "optional": true, "dependencies": { "@substrate/connect-extension-protocol": "^2.0.0", @@ -10389,29 +10153,32 @@ } }, "node_modules/dkg.js/node_modules/@substrate/connect-extension-protocol": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.0.tgz", - "integrity": "sha512-8b5bN/jo6qD4vcnoWr3T+Nn2u1XLRkJTsEt8b9iGvPPZ1cFcPCVQVpn3lP3U3WqbuSLiVkh0CjX5TW+aCUAi3g==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz", + "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==", "dev": true, - "license": "GPL-3.0-only", "optional": true }, "node_modules/dkg.js/node_modules/@types/node": { - "version": "18.15.13", + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", "dev": true, - "license": "MIT" + "dependencies": { + "undici-types": "~6.19.2" + } }, "node_modules/dkg.js/node_modules/aes-js": { "version": "4.0.0-beta.5", - "dev": true, - "license": "MIT" + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "dev": true }, "node_modules/dkg.js/node_modules/assertion-tools": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-2.2.1.tgz", "integrity": "sha512-JlA1S16Ox93PnYb45HvxNcax/Ii4gqTO8HLGa/ykj/ddp8EEHlokn6inJR2yMiz173WSFkCc0ciLJzGeaYBANw==", "dev": true, - "license": "ISC", "dependencies": { "ethers": "^5.7.2", "jsonld": "^8.1.0", @@ -10433,7 +10200,6 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "license": "MIT", "dependencies": { "@ethersproject/abi": "5.7.0", "@ethersproject/abstract-provider": "5.7.0", @@ -10469,8 +10235,9 @@ }, "node_modules/dkg.js/node_modules/axios": { "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, - "license": "MIT", "dependencies": { "follow-redirects": "^1.14.9", "form-data": "^4.0.0" @@ -10481,7 +10248,6 @@ "resolved": "https://registry.npmjs.org/dkg-evm-module/-/dkg-evm-module-4.4.0.tgz", "integrity": "sha512-2hBZI/KnbbOEiKr3mU7Nknz3Wis8hLWGvyCifevG4/fUO8v+oVdrshLvQJ6izAfDHeua2PHcW8Z3hn6eIdUVxA==", "dev": true, - "license": "Apache-2.0", "dependencies": { "@openzeppelin/contracts": "^4.9.3", "@polkadot/api": "^11.0.3", @@ -10497,25 +10263,10 @@ "typescript": "^4.9.4" } }, - "node_modules/dkg.js/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==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.6", - "elliptic": "^6.4.0", - "xhr-request-promise": "^0.1.2" - } - }, - "node_modules/dkg.js/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==", - "dev": true - }, "node_modules/dkg.js/node_modules/ethers": { - "version": "6.13.0", + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", + "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", "dev": true, "funding": [ { @@ -10527,15 +10278,14 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], - "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", + "@types/node": "22.7.5", "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" + "tslib": "2.7.0", + "ws": "8.17.1" }, "engines": { "node": ">=14.0.0" @@ -10566,235 +10316,28 @@ } }, "node_modules/dkg.js/node_modules/tslib": { - "version": "2.4.0", - "dev": true, - "license": "0BSD" - }, - "node_modules/dkg.js/node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/dkg.js/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "dev": true, - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/dkg.js/node_modules/web3": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", - "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "web3-bzz": "1.10.4", - "web3-core": "1.10.4", - "web3-eth": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-shh": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-core": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz", - "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-requestmanager": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-core/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==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true }, - "node_modules/dkg.js/node_modules/web3-eth": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", - "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", - "dev": true, - "dependencies": { - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-accounts": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-eth-ens": "1.10.4", - "web3-eth-iban": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", - "dev": true, - "dependencies": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-accounts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", - "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", - "dev": true, - "dependencies": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-contract": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", - "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", - "dev": true, - "dependencies": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-ens": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", - "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", - "dev": true, - "dependencies": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "dependencies": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-personal": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", - "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", - "dev": true, - "dependencies": { - "@types/node": "^12.12.6", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/dkg.js/node_modules/web3-eth-personal/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/dkg.js/node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "node_modules/dkg.js/node_modules/web3-net": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", - "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==", - "dev": true, - "dependencies": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/dkg.js/node_modules/ws": { - "version": "8.5.0", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -10906,9 +10449,9 @@ } }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "engines": { "node": ">=12" }, @@ -11016,9 +10559,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.67", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", - "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "version": "1.5.71", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz", + "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==", "dev": true }, "node_modules/elliptic": { @@ -12189,9 +11732,9 @@ } }, "node_modules/express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -12212,7 +11755,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -12227,6 +11770,10 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/express-fileupload": { @@ -13064,11 +12611,11 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13306,13 +12853,13 @@ } }, "node_modules/hardhat": { - "version": "2.22.16", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.16.tgz", - "integrity": "sha512-d52yQZ09u0roL6GlgJSvtknsBtIuj9JrJ/U8VMzr/wue+gO5v2tQayvOX6llerlR57Zw2EOTQjLAt6RpHvjwHA==", + "version": "2.22.17", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.17.tgz", + "integrity": "sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==", "dependencies": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.6.4", + "@nomicfoundation/edr": "^0.6.5", "@nomicfoundation/ethereumjs-common": "4.0.4", "@nomicfoundation/ethereumjs-tx": "5.0.4", "@nomicfoundation/ethereumjs-util": "9.0.4", @@ -13574,9 +13121,12 @@ } }, "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", + "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "dependencies": { + "call-bind": "^1.0.7" + }, "engines": { "node": ">= 0.4" }, @@ -13585,9 +13135,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -14234,13 +13784,16 @@ } }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "peer": true, "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -14258,14 +13811,14 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", + "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", "dev": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14503,13 +14056,14 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", + "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", "dev": true, "peer": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14546,14 +14100,16 @@ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", + "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", "dev": true, "peer": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "gopd": "^1.1.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -14603,13 +14159,14 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", + "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", "dev": true, "peer": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14619,13 +14176,15 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", + "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", "dev": true, "peer": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.7", + "has-symbols": "^1.0.3", + "safe-regex-test": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -15406,6 +14965,17 @@ "node": ">=10" } }, + "node_modules/jsonld/node_modules/rdf-canonize": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", + "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "dependencies": { + "setimmediate": "^1.0.5" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/jsonld/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -17319,7 +16889,6 @@ "version": "1.23.1", "resolved": "https://registry.npmjs.org/n3/-/n3-1.23.1.tgz", "integrity": "sha512-3f0IYJo+6+lXypothmlwPzm3wJNffsxUwnfONeFv2QqWq7RjTvyCMtkRXDUXW6XrZoOzaQX8xTTSYNlGjXcGtw==", - "license": "MIT", "dependencies": { "buffer": "^6.0.3", "queue-microtask": "^1.1.2", @@ -17653,9 +17222,9 @@ "integrity": "sha512-XWwnNNFCuuSQ0m3r3C4LE3EiORltHd9M05pq6FOlVeiophzRbMo50Sbz1ehl8K3Z+jw9+vmgnXefY1hz8X+2wA==" }, "node_modules/nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", "dev": true }, "node_modules/nyc": { @@ -18359,9 +17928,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "node_modules/path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/pathval": { "version": "1.1.1", @@ -18883,12 +18452,15 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/psl": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.14.0.tgz", - "integrity": "sha512-Syk1bnf6fRZ9wQs03AtKJHcM12cKbOLo9L8JtCCdYj5/DTsHmTyXM4BK5ouWeG2P6kZ4nmFvuNTdtaqfobCOCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, "dependencies": { "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" } }, "node_modules/pump": { @@ -19053,14 +18625,14 @@ } }, "node_modules/rdf-canonize": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", - "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz", + "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==", "dependencies": { "setimmediate": "^1.0.5" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/rdf-data-factory": { @@ -20662,9 +20234,9 @@ } }, "node_modules/streamx": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", - "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", + "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", "dev": true, "dependencies": { "fast-fifo": "^1.3.2", @@ -21125,10 +20697,13 @@ } }, "node_modules/text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", - "dev": true + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz", + "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4" + } }, "node_modules/text-hex": { "version": "1.0.0", @@ -21652,9 +21227,9 @@ } }, "node_modules/umzug/node_modules/type-fest": { - "version": "4.29.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.0.tgz", - "integrity": "sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==", + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", + "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", "engines": { "node": ">=16" }, @@ -21987,6 +21562,25 @@ "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz", "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA==" }, + "node_modules/web3": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", + "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "web3-bzz": "1.10.4", + "web3-core": "1.10.4", + "web3-eth": "1.10.4", + "web3-eth-personal": "1.10.4", + "web3-net": "1.10.4", + "web3-shh": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/web3-bzz": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz", @@ -22114,6 +21708,131 @@ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", "dev": true }, + "node_modules/web3-eth": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", + "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", + "dev": true, + "dependencies": { + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-core-subscriptions": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-eth-accounts": "1.10.4", + "web3-eth-contract": "1.10.4", + "web3-eth-ens": "1.10.4", + "web3-eth-iban": "1.10.4", + "web3-eth-personal": "1.10.4", + "web3-net": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", + "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", + "dev": true, + "dependencies": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", + "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", + "dev": true, + "dependencies": { + "@ethereumjs/common": "2.6.5", + "@ethereumjs/tx": "3.5.2", + "@ethereumjs/util": "^8.1.0", + "eth-lib": "0.2.8", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-accounts/node_modules/bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "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==", + "dev": true, + "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": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/web3-eth-contract": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", + "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", + "dev": true, + "dependencies": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-core-promievent": "1.10.4", + "web3-core-subscriptions": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-ens": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", + "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", + "dev": true, + "dependencies": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-promievent": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-eth-contract": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/web3-eth-iban": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", @@ -22127,6 +21846,29 @@ "node": ">=8.0.0" } }, + "node_modules/web3-eth-personal": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", + "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", + "dev": true, + "dependencies": { + "@types/node": "^12.12.6", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-net": "1.10.4", + "web3-utils": "1.10.4" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/web3-eth-personal/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==", + "dev": true + }, "node_modules/web3-net": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", @@ -22384,17 +22126,20 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", + "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", "dev": true, "peer": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.0", + "is-number-object": "^1.1.0", + "is-string": "^1.1.0", + "is-symbol": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -22912,9 +22657,9 @@ } }, "@babel/compat-data": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", - "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.3.tgz", + "integrity": "sha512-nHIxvKPniQXpmQLb0vhY3VaFb3S0YrTAwpOWJZh1wn3oJPjJk9Asva204PsBdmAE8vpzfHudT8DB0scYvy9q0g==", "dev": true }, "@babel/core": { @@ -22955,13 +22700,13 @@ } }, "@babel/generator": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", - "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.3.tgz", + "integrity": "sha512-6FF/urZvD0sTeO7k6/B15pMLC4CHUv1426lzr3N01aHJTl046uCAh9LXW/fzeXXjPNCJ6iABW5XaWOsIZB93aQ==", "dev": true, "requires": { - "@babel/parser": "^7.26.2", - "@babel/types": "^7.26.0", + "@babel/parser": "^7.26.3", + "@babel/types": "^7.26.3", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -23047,12 +22792,12 @@ } }, "@babel/parser": { - "version": "7.26.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", - "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.3.tgz", + "integrity": "sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==", "dev": true, "requires": { - "@babel/types": "^7.26.0" + "@babel/types": "^7.26.3" } }, "@babel/runtime": { @@ -23075,16 +22820,16 @@ } }, "@babel/traverse": { - "version": "7.25.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", - "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "version": "7.26.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.4.tgz", + "integrity": "sha512-fH+b7Y4p3yqvApJALCPJcwb0/XaOSgtK4pzV6WVjPR5GLFQBRI7pfoX2V2iM48NXvX07NUxxm1Vw98YjqTcU5w==", "dev": true, "requires": { - "@babel/code-frame": "^7.25.9", - "@babel/generator": "^7.25.9", - "@babel/parser": "^7.25.9", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.3", + "@babel/parser": "^7.26.3", "@babel/template": "^7.25.9", - "@babel/types": "^7.25.9", + "@babel/types": "^7.26.3", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -23098,9 +22843,9 @@ } }, "@babel/types": { - "version": "7.26.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", - "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", + "version": "7.26.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.3.tgz", + "integrity": "sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.25.9", @@ -28327,9 +28072,9 @@ } }, "assertion-tools": { - "version": "8.0.0-alpha.2", - "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-alpha.2.tgz", - "integrity": "sha512-g2vUPGdCB1lAP2jSQMYcfTjlhgmm/92t8l/rxucjYh+QdknuCgkZHOwJzVUxWmsOIYJz2fp0bbU0HKfAQt8LMQ==", + "version": "8.0.0-gamma.0", + "resolved": "https://registry.npmjs.org/assertion-tools/-/assertion-tools-8.0.0-gamma.0.tgz", + "integrity": "sha512-tUF2IcrddKhz2usRsgjrEGdfMuScz2P2nt8/9oJVb/NiSUp4l8i1nDDvmpAT3oompWLbd9HAxo2I0P4S4mJCYA==", "requires": { "ethers": "^5.7.2", "jsonld": "^8.1.0", @@ -28337,16 +28082,6 @@ "n3": "^1.23.1", "rdf-canonize": "^4.0.1", "uuid": "^8.3.2" - }, - "dependencies": { - "rdf-canonize": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz", - "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==", - "requires": { - "setimmediate": "^1.0.5" - } - } } }, "ast-types-flow": { @@ -28441,9 +28176,9 @@ "peer": true }, "axios": { - "version": "1.7.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.8.tgz", - "integrity": "sha512-Uu0wb7KNqK2t5K+YQyVCLM76prD5sRFjKHbJYCP1J7JFGEQ6nN7HWn9+04LAeiJ3ji54lgS/gZCH1oxyrf1SPw==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "requires": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -28873,15 +28608,23 @@ } }, "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "requires": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + } + }, + "call-bind-apply-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.0.tgz", + "integrity": "sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" } }, "callsites": { @@ -28904,9 +28647,9 @@ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, "caniuse-lite": { - "version": "1.0.30001684", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001684.tgz", - "integrity": "sha512-G1LRwLIQjBQoyq0ZJGqGIJUXzJ8irpbjHLpVRXDvBEScFJ9b17sgK6vlx0GAJFE21okD7zXl08rRRUfq6HdoEQ==", + "version": "1.0.30001687", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001687.tgz", + "integrity": "sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==", "dev": true }, "canonicalize": { @@ -30716,14 +30459,14 @@ } }, "dkg.js": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.3.tgz", - "integrity": "sha512-A3dN9jcxOXD8e5JQpf7PBRjvmDabDeMGboA8p5THbFHwBostikG4UHC7BttN4CKyvgnQudKpFjAYRGkemGku2g==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/dkg.js/-/dkg.js-6.5.4.tgz", + "integrity": "sha512-zvTG/ehsX6dcjnUKErVs1d9tpfsID2DrDf0sYjKVyqeYcnKntGsRN4fHwrQLPLjkVCnjTvnr5R34eUu03BmGqg==", "dev": true, "requires": { - "assertion-tools": "^2.1.0", + "assertion-tools": "^2.2.1", "axios": "^0.27.2", - "dkg-evm-module": "^4.3.3", + "dkg-evm-module": "^4.4.0", "ethers": "^6.1.0", "jsonld": "^8.1.0", "web3": "^1.7.3" @@ -30758,14 +30501,6 @@ "eventemitter3": "^5.0.1", "rxjs": "^7.8.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/api-augment": { @@ -30781,14 +30516,6 @@ "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/api-base": { @@ -30802,14 +30529,6 @@ "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/api-derive": { @@ -30828,14 +30547,6 @@ "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/keyring": { @@ -30847,14 +30558,6 @@ "@polkadot/util": "12.6.2", "@polkadot/util-crypto": "12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/networks": { @@ -30866,14 +30569,6 @@ "@polkadot/util": "12.6.2", "@substrate/ss58-registry": "^1.44.0", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/rpc-augment": { @@ -30887,14 +30582,6 @@ "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/rpc-core": { @@ -30909,14 +30596,6 @@ "@polkadot/util": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/rpc-provider": { @@ -30938,14 +30617,6 @@ "mock-socket": "^9.3.1", "nock": "^13.5.0", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types": { @@ -30962,14 +30633,6 @@ "@polkadot/util-crypto": "^12.6.2", "rxjs": "^7.8.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types-augment": { @@ -30982,14 +30645,6 @@ "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types-codec": { @@ -31001,14 +30656,6 @@ "@polkadot/util": "^12.6.2", "@polkadot/x-bigint": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types-create": { @@ -31020,14 +30667,6 @@ "@polkadot/types-codec": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types-known": { @@ -31042,14 +30681,6 @@ "@polkadot/types-create": "11.3.1", "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/types-support": { @@ -31060,14 +30691,6 @@ "requires": { "@polkadot/util": "^12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/util": { @@ -31083,14 +30706,6 @@ "@types/bn.js": "^5.1.5", "bn.js": "^5.2.1", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/util-crypto": { @@ -31109,14 +30724,6 @@ "@polkadot/x-randomvalues": "12.6.2", "@scure/base": "^1.1.5", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-bridge": { @@ -31127,14 +30734,6 @@ "requires": { "@polkadot/wasm-util": "7.4.1", "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-crypto": { @@ -31149,14 +30748,6 @@ "@polkadot/wasm-crypto-wasm": "7.4.1", "@polkadot/wasm-util": "7.4.1", "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-crypto-asmjs": { @@ -31166,14 +30757,6 @@ "dev": true, "requires": { "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-crypto-init": { @@ -31187,14 +30770,6 @@ "@polkadot/wasm-crypto-wasm": "7.4.1", "@polkadot/wasm-util": "7.4.1", "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-crypto-wasm": { @@ -31205,14 +30780,6 @@ "requires": { "@polkadot/wasm-util": "7.4.1", "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/wasm-util": { @@ -31222,14 +30789,6 @@ "dev": true, "requires": { "tslib": "^2.7.0" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-bigint": { @@ -31240,14 +30799,6 @@ "requires": { "@polkadot/x-global": "12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-fetch": { @@ -31259,14 +30810,6 @@ "@polkadot/x-global": "12.6.2", "node-fetch": "^3.3.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-global": { @@ -31276,14 +30819,6 @@ "dev": true, "requires": { "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-randomvalues": { @@ -31294,14 +30829,6 @@ "requires": { "@polkadot/x-global": "12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-textdecoder": { @@ -31312,14 +30839,6 @@ "requires": { "@polkadot/x-global": "12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-textencoder": { @@ -31330,14 +30849,6 @@ "requires": { "@polkadot/x-global": "12.6.2", "tslib": "^2.6.2" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - } } }, "@polkadot/x-ws": { @@ -31349,27 +30860,12 @@ "@polkadot/x-global": "12.6.2", "tslib": "^2.6.2", "ws": "^8.15.1" - }, - "dependencies": { - "tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true - }, - "ws": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", - "dev": true, - "requires": {} - } } }, "@scure/base": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", - "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.2.1.tgz", + "integrity": "sha512-DGmGtC8Tt63J5GfHgfl5CuAXh96VF/LD8K9Hr/Gv0J2lAoRGlPOMpqMpMbCTOoOJMZCk2Xt+DskdDyn6dEFdzQ==", "dev": true }, "@substrate/connect": { @@ -31386,18 +30882,25 @@ } }, "@substrate/connect-extension-protocol": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.0.tgz", - "integrity": "sha512-8b5bN/jo6qD4vcnoWr3T+Nn2u1XLRkJTsEt8b9iGvPPZ1cFcPCVQVpn3lP3U3WqbuSLiVkh0CjX5TW+aCUAi3g==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@substrate/connect-extension-protocol/-/connect-extension-protocol-2.2.1.tgz", + "integrity": "sha512-GoafTgm/Jey9E4Xlj4Z5ZBt/H4drH2CNq8VrAro80rtoznrXnFDNVivLQzZN0Xaj2g8YXSn9pC9Oc9IovYZJXw==", "dev": true, "optional": true }, "@types/node": { - "version": "18.15.13", - "dev": true + "version": "22.7.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", + "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "dev": true, + "requires": { + "undici-types": "~6.19.2" + } }, "aes-js": { "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-4.0.0-beta.5.tgz", + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", "dev": true }, "assertion-tools": { @@ -31453,6 +30956,8 @@ }, "axios": { "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", "dev": true, "requires": { "follow-redirects": "^1.14.9", @@ -31479,36 +30984,19 @@ "typescript": "^4.9.4" } }, - "eth-lib": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", - "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", - "dev": true, - "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==", - "dev": true - } - } - }, "ethers": { - "version": "6.13.0", + "version": "6.13.4", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-6.13.4.tgz", + "integrity": "sha512-21YtnZVg4/zKkCQPjrDj38B1r4nQvTZLopUGMLQ1ePU2zV/joCfDC3t3iKQjWRzjjjbzR+mdAIoikeBRNkdllA==", "dev": true, "requires": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", "@noble/hashes": "1.3.2", - "@types/node": "18.15.13", + "@types/node": "22.7.5", "aes-js": "4.0.0-beta.5", - "tslib": "2.4.0", - "ws": "8.5.0" + "tslib": "2.7.0", + "ws": "8.17.1" }, "dependencies": { "@noble/curves": { @@ -31529,184 +31017,21 @@ } }, "tslib": { - "version": "2.4.0", - "dev": true - }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true }, - "uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true }, - "web3": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", - "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", - "dev": true, - "requires": { - "web3-bzz": "1.10.4", - "web3-core": "1.10.4", - "web3-eth": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-shh": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-core": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.10.4.tgz", - "integrity": "sha512-B6elffYm81MYZDTrat7aEhnhdtVE3lDBUZft16Z8awYMZYJDbnykEbJVS+l3mnA7AQTnSDr/1MjWofGDLBJPww==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "@types/node": "^12.12.6", - "bignumber.js": "^9.0.0", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-requestmanager": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "@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==", - "dev": true - } - } - }, - "web3-eth": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", - "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", - "dev": true, - "requires": { - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-accounts": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-eth-ens": "1.10.4", - "web3-eth-iban": "1.10.4", - "web3-eth-personal": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-abi": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", - "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", - "dev": true, - "requires": { - "@ethersproject/abi": "^5.6.3", - "web3-utils": "1.10.4" - } - }, - "web3-eth-accounts": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", - "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", - "dev": true, - "requires": { - "@ethereumjs/common": "2.6.5", - "@ethereumjs/tx": "3.5.2", - "@ethereumjs/util": "^8.1.0", - "eth-lib": "0.2.8", - "scrypt-js": "^3.0.1", - "uuid": "^9.0.0", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-contract": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", - "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", - "dev": true, - "requires": { - "@types/bn.js": "^5.1.1", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-core-subscriptions": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-ens": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", - "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", - "dev": true, - "requires": { - "content-hash": "^2.5.2", - "eth-ens-namehash": "2.0.8", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-promievent": "1.10.4", - "web3-eth-abi": "1.10.4", - "web3-eth-contract": "1.10.4", - "web3-utils": "1.10.4" - } - }, - "web3-eth-iban": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", - "integrity": "sha512-0gE5iNmOkmtBmbKH2aTodeompnNE8jEyvwFJ6s/AF6jkw9ky9Op9cqfzS56AYAbrqEFuClsqB/AoRves7LDELw==", - "dev": true, - "requires": { - "bn.js": "^5.2.1", - "web3-utils": "1.10.4" - } - }, - "web3-eth-personal": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", - "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", - "dev": true, - "requires": { - "@types/node": "^12.12.6", - "web3-core": "1.10.4", - "web3-core-helpers": "1.10.4", - "web3-core-method": "1.10.4", - "web3-net": "1.10.4", - "web3-utils": "1.10.4" - }, - "dependencies": { - "@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==", - "dev": true - } - } - }, - "web3-net": { - "version": "1.10.4", - "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", - "integrity": "sha512-mKINnhOOnZ4koA+yV2OT5s5ztVjIx7IY9a03w6s+yao/BUn+Luuty0/keNemZxTr1E8Ehvtn28vbOtW7Ids+Ow==", - "dev": true, - "requires": { - "web3-core": "1.10.4", - "web3-core-method": "1.10.4", - "web3-utils": "1.10.4" - } - }, "ws": { - "version": "8.5.0", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "requires": {} } @@ -31787,9 +31112,9 @@ } }, "dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==" }, "dottie": { "version": "2.0.6", @@ -31892,9 +31217,9 @@ } }, "electron-to-chromium": { - "version": "1.5.67", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", - "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", + "version": "1.5.71", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz", + "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==", "dev": true }, "elliptic": { @@ -32838,9 +32163,9 @@ "dev": true }, "express": { - "version": "4.21.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", - "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -32861,7 +32186,7 @@ "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.10", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", "qs": "6.13.0", "range-parser": "~1.2.1", @@ -33498,12 +32823,9 @@ } }, "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" }, "got": { "version": "12.1.0", @@ -33706,13 +33028,13 @@ } }, "hardhat": { - "version": "2.22.16", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.16.tgz", - "integrity": "sha512-d52yQZ09u0roL6GlgJSvtknsBtIuj9JrJ/U8VMzr/wue+gO5v2tQayvOX6llerlR57Zw2EOTQjLAt6RpHvjwHA==", + "version": "2.22.17", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.17.tgz", + "integrity": "sha512-tDlI475ccz4d/dajnADUTRc1OJ3H8fpP9sWhXhBPpYsQOg8JHq5xrDimo53UhWPl7KJmAeDCm1bFG74xvpGRpg==", "requires": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.6.4", + "@nomicfoundation/edr": "^0.6.5", "@nomicfoundation/ethereumjs-common": "4.0.4", "@nomicfoundation/ethereumjs-tx": "5.0.4", "@nomicfoundation/ethereumjs-util": "9.0.4", @@ -33908,14 +33230,17 @@ } }, "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", + "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "requires": { + "call-bind": "^1.0.7" + } }, "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" }, "has-tostringtag": { "version": "1.0.2", @@ -34395,13 +33720,13 @@ } }, "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "peer": true, "requires": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" } }, "is-binary-path": { @@ -34413,14 +33738,14 @@ } }, "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", + "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", "dev": true, "peer": true, "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" } }, "is-buffer": { @@ -34559,13 +33884,14 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", + "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", "dev": true, "peer": true, "requires": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" } }, "is-path-inside": { @@ -34590,14 +33916,16 @@ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" }, "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", + "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", "dev": true, "peer": true, "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "gopd": "^1.1.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" } }, "is-set": { @@ -34623,23 +33951,26 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" }, "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", + "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", "dev": true, "peer": true, "requires": { - "has-tostringtag": "^1.0.0" + "call-bind": "^1.0.7", + "has-tostringtag": "^1.0.2" } }, "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", + "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", "dev": true, "peer": true, "requires": { - "has-symbols": "^1.0.2" + "call-bind": "^1.0.7", + "has-symbols": "^1.0.3", + "safe-regex-test": "^1.0.3" } }, "is-typed-array": { @@ -35180,6 +34511,14 @@ "yallist": "^4.0.0" } }, + "rdf-canonize": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", + "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "requires": { + "setimmediate": "^1.0.5" + } + }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -37016,9 +36355,9 @@ } }, "nwsapi": { - "version": "2.2.13", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.13.tgz", - "integrity": "sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==", + "version": "2.2.16", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.16.tgz", + "integrity": "sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==", "dev": true }, "nyc": { @@ -37539,9 +36878,9 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, "path-to-regexp": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", - "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "pathval": { "version": "1.1.1", @@ -37949,9 +37288,9 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "psl": { - "version": "1.14.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.14.0.tgz", - "integrity": "sha512-Syk1bnf6fRZ9wQs03AtKJHcM12cKbOLo9L8JtCCdYj5/DTsHmTyXM4BK5ouWeG2P6kZ4nmFvuNTdtaqfobCOCg==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", "dev": true, "requires": { "punycode": "^2.3.1" @@ -38076,9 +37415,9 @@ } }, "rdf-canonize": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-3.4.0.tgz", - "integrity": "sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/rdf-canonize/-/rdf-canonize-4.0.1.tgz", + "integrity": "sha512-B5ynHt4sasbUafzrvYI2GFARgeFcD8Sx9yXPbg7gEyT2EH76rlCv84kyO6tnxzVbxUN/uJDbK1S/MXh+DsnuTA==", "requires": { "setimmediate": "^1.0.5" } @@ -39346,9 +38685,9 @@ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==" }, "streamx": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.20.2.tgz", - "integrity": "sha512-aDGDLU+j9tJcUdPGOaHmVF1u/hhI+CsGkT02V3OKlHDV7IukOI+nTWAGkiZEKCO35rWN1wIr4tS7YFr1f4qSvA==", + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.21.0.tgz", + "integrity": "sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==", "dev": true, "requires": { "bare-events": "^2.2.0", @@ -39700,10 +39039,13 @@ } }, "text-decoder": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.1.tgz", - "integrity": "sha512-x9v3H/lTKIJKQQe7RPQkLfKAnc9lUTkWDypIQgTzPJAq+5/GCDHonmshfvlsNSj58yyshbIJJDLmU15qNERrXQ==", - "dev": true + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.2.tgz", + "integrity": "sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==", + "dev": true, + "requires": { + "b4a": "^1.6.4" + } }, "text-hex": { "version": "1.0.0", @@ -40100,9 +39442,9 @@ }, "dependencies": { "type-fest": { - "version": "4.29.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.29.0.tgz", - "integrity": "sha512-RPYt6dKyemXJe7I6oNstcH24myUGSReicxcHTvCLgzm4e0n8y05dGvcGB15/SoPRBmhlMthWQ9pvKyL81ko8nQ==" + "version": "4.30.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", + "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==" } } }, @@ -40371,6 +39713,21 @@ "resolved": "https://registry.npmjs.org/web-streams-ponyfill/-/web-streams-ponyfill-1.4.2.tgz", "integrity": "sha512-LCHW+fE2UBJ2vjhqJujqmoxh1ytEDEr0dPO3CabMdMDJPKmsaxzS90V1Ar6LtNE5VHLqxR4YMEj1i4lzMAccIA==" }, + "web3": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.10.4.tgz", + "integrity": "sha512-kgJvQZjkmjOEKimx/tJQsqWfRDPTTcBfYPa9XletxuHLpHcXdx67w8EFn5AW3eVxCutE9dTVHgGa9VYe8vgsEA==", + "dev": true, + "requires": { + "web3-bzz": "1.10.4", + "web3-core": "1.10.4", + "web3-eth": "1.10.4", + "web3-eth-personal": "1.10.4", + "web3-net": "1.10.4", + "web3-shh": "1.10.4", + "web3-utils": "1.10.4" + } + }, "web3-bzz": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-bzz/-/web3-bzz-1.10.4.tgz", @@ -40484,6 +39841,111 @@ } } }, + "web3-eth": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.10.4.tgz", + "integrity": "sha512-Sql2kYKmgt+T/cgvg7b9ce24uLS7xbFrxE4kuuor1zSCGrjhTJ5rRNG8gTJUkAJGKJc7KgnWmgW+cOfMBPUDSA==", + "dev": true, + "requires": { + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-core-subscriptions": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-eth-accounts": "1.10.4", + "web3-eth-contract": "1.10.4", + "web3-eth-ens": "1.10.4", + "web3-eth-iban": "1.10.4", + "web3-eth-personal": "1.10.4", + "web3-net": "1.10.4", + "web3-utils": "1.10.4" + } + }, + "web3-eth-abi": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.10.4.tgz", + "integrity": "sha512-cZ0q65eJIkd/jyOlQPDjr8X4fU6CRL1eWgdLwbWEpo++MPU/2P4PFk5ZLAdye9T5Sdp+MomePPJ/gHjLMj2VfQ==", + "dev": true, + "requires": { + "@ethersproject/abi": "^5.6.3", + "web3-utils": "1.10.4" + } + }, + "web3-eth-accounts": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.10.4.tgz", + "integrity": "sha512-ysy5sVTg9snYS7tJjxVoQAH6DTOTkRGR8emEVCWNGLGiB9txj+qDvSeT0izjurS/g7D5xlMAgrEHLK1Vi6I3yg==", + "dev": true, + "requires": { + "@ethereumjs/common": "2.6.5", + "@ethereumjs/tx": "3.5.2", + "@ethereumjs/util": "^8.1.0", + "eth-lib": "0.2.8", + "scrypt-js": "^3.0.1", + "uuid": "^9.0.0", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-utils": "1.10.4" + }, + "dependencies": { + "bn.js": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", + "dev": true + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dev": true, + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "dev": true + } + } + }, + "web3-eth-contract": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.10.4.tgz", + "integrity": "sha512-Q8PfolOJ4eV9TvnTj1TGdZ4RarpSLmHnUnzVxZ/6/NiTfe4maJz99R0ISgwZkntLhLRtw0C7LRJuklzGYCNN3A==", + "dev": true, + "requires": { + "@types/bn.js": "^5.1.1", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-core-promievent": "1.10.4", + "web3-core-subscriptions": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-utils": "1.10.4" + } + }, + "web3-eth-ens": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.10.4.tgz", + "integrity": "sha512-LLrvxuFeVooRVZ9e5T6OWKVflHPFgrVjJ/jtisRWcmI7KN/b64+D/wJzXqgmp6CNsMQcE7rpmf4CQmJCrTdsgg==", + "dev": true, + "requires": { + "content-hash": "^2.5.2", + "eth-ens-namehash": "2.0.8", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-promievent": "1.10.4", + "web3-eth-abi": "1.10.4", + "web3-eth-contract": "1.10.4", + "web3-utils": "1.10.4" + } + }, "web3-eth-iban": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.10.4.tgz", @@ -40494,6 +39956,28 @@ "web3-utils": "1.10.4" } }, + "web3-eth-personal": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.10.4.tgz", + "integrity": "sha512-BRa/hs6jU1hKHz+AC/YkM71RP3f0Yci1dPk4paOic53R4ZZG4MgwKRkJhgt3/GPuPliwS46f/i5A7fEGBT4F9w==", + "dev": true, + "requires": { + "@types/node": "^12.12.6", + "web3-core": "1.10.4", + "web3-core-helpers": "1.10.4", + "web3-core-method": "1.10.4", + "web3-net": "1.10.4", + "web3-utils": "1.10.4" + }, + "dependencies": { + "@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==", + "dev": true + } + } + }, "web3-net": { "version": "1.10.4", "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.10.4.tgz", @@ -40703,17 +40187,17 @@ } }, "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", + "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", "dev": true, "peer": true, "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.0", + "is-number-object": "^1.1.0", + "is-string": "^1.1.0", + "is-symbol": "^1.1.0" } }, "which-builtin-type": { diff --git a/package.json b/package.json index 0b551d41a..2fbfac54d 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "@polkadot/util": "^10.1.7", "@polkadot/util-crypto": "^10.1.7", "app-root-path": "^3.1.0", - "assertion-tools": "^8.0.0-alpha.2", + "assertion-tools": "^8.0.0-gamma.0", "async": "^3.2.4", "async-mutex": "^0.3.2", "awilix": "^7.0.3", diff --git a/src/commands/blockchain-event-listener/blockchain-event-listener-command.js b/src/commands/blockchain-event-listener/blockchain-event-listener-command.js index 79da90190..f115efd77 100644 --- a/src/commands/blockchain-event-listener/blockchain-event-listener-command.js +++ b/src/commands/blockchain-event-listener/blockchain-event-listener-command.js @@ -480,7 +480,7 @@ class BlockchainEventListenerCommand extends Command { const datasetPath = this.fileService.getPendingStorageDocumentPath(publishOperationId); - const data = await this.fileService.readFile(datasetPath, true); + const cachedData = await this.fileService.readFile(datasetPath, true); const ual = this.ualService.deriveUAL(blockchain, assetContract, tokenId); @@ -495,6 +495,52 @@ class BlockchainEventListenerCommand extends Command { contract: assetContract, tokenId, merkleRoot: state, + assertion: cachedData.assertion, + cachedMerkleRoot: cachedData.merkleRoot, + }, + transactional: false, + }); + } + + // TODO: Adjust after new contracts are released + async handleAssetUpdatedEvent(event) { + const eventData = JSON.parse(event.data); + + // TODO: Add correct name for assetStateIndex from event currently it's placeholder + const { assetContract, tokenId, state, updateOperationId, assetStateIndex } = eventData; + const { blockchain } = event; + + const operationId = await this.operationIdService.generateOperationId( + OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_START, + ); + + let data; + let datasetPath; + try { + datasetPath = this.fileService.getPendingStorageDocumentPath(updateOperationId); + data = await this.fileService.readFile(datasetPath, true); + } catch (error) { + this.operationIdService.markOperationAsFailed( + operationId, + blockchain, + `Unable to read cached data from ${datasetPath}, error: ${error.message}`, + ERROR_TYPE.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_NO_CACHED_DATA, + ); + } + const ual = this.ualService.deriveUAL(blockchain, assetContract, tokenId); + + await this.commandExecutor.add({ + name: 'updateValidateAssertionMetadataCommand', + sequence: ['updateAssertionCommand'], + delay: 0, + data: { + operationId, + ual, + blockchain, + contract: assetContract, + tokenId, + assetStateIndex, + merkleRoot: state, assertion: data.assertion, cachedMerkleRoot: data.merkleRoot, }, diff --git a/src/commands/common/validate-asset-command.js b/src/commands/common/validate-asset-command.js index 73014ee30..ccc345f90 100644 --- a/src/commands/common/validate-asset-command.js +++ b/src/commands/common/validate-asset-command.js @@ -58,6 +58,7 @@ class ValidateAssetCommand extends Command { if (!blockchainAssertionId || blockchainAssertionId === ZERO_BYTES32) { return Command.retry(); } + // TODO: Validate number of triplets and other stuff we did before so it matches like we did it in v6 const cachedData = await this.operationIdService.getCachedOperationIdData(operationId); const ual = this.ualService.deriveUAL(blockchain, contract, tokenId); this.logger.info( diff --git a/src/commands/protocols/publish/validate-assertion-metadata-command.js b/src/commands/protocols/common/validate-assertion-metadata-command.js similarity index 79% rename from src/commands/protocols/publish/validate-assertion-metadata-command.js rename to src/commands/protocols/common/validate-assertion-metadata-command.js index 5af0a8c52..f9d19976a 100644 --- a/src/commands/protocols/publish/validate-assertion-metadata-command.js +++ b/src/commands/protocols/common/validate-assertion-metadata-command.js @@ -1,16 +1,9 @@ import Command from '../../command.js'; -import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js'; class ValidateAssertionMetadataCommand extends Command { constructor(ctx) { super(ctx); this.operationIdService = ctx.operationIdService; - - this.errorType = ERROR_TYPE.VALIDATE_ASSERTION_METADATA_ERROR; - this.operationStartEvent = - OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_START; - this.operationEndEvent = - OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_END; } async execute(command) { @@ -34,11 +27,12 @@ class ValidateAssertionMetadataCommand extends Command { } } catch (e) { await this.handleError(operationId, blockchain, e.message, this.errorType, true); + return Command.empty(); } await this.operationIdService.updateOperationIdStatus( operationId, - null, + blockchain, this.operationEndEvent, ); diff --git a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js b/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js index d823bafa5..155f263b6 100644 --- a/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js +++ b/src/commands/protocols/get/receiver/v1.0.0/v1-0-0-handle-get-request-command.js @@ -3,6 +3,7 @@ import { ERROR_TYPE, NETWORK_MESSAGE_TYPES, OPERATION_ID_STATUS, + TRIPLES_VISIBILITY, } from '../../../../../constants/constants.js'; class HandleGetRequestCommand extends HandleProtocolMessageCommand { @@ -103,8 +104,15 @@ class HandleGetRequestCommand extends HandleProtocolMessageCommand { operationId, blockchain, ); + const assertionPromise = this.tripleStoreService - .getAssertion(blockchain, contract, knowledgeCollectionId, knowledgeAssetId) + .getAssertion( + blockchain, + contract, + knowledgeCollectionId, + knowledgeAssetId, + TRIPLES_VISIBILITY.PUBLIC, + ) .then((result) => { this.operationIdService.emitChangeEvent( OPERATION_ID_STATUS.GET.GET_REMOTE_GET_ASSERTION_END, diff --git a/src/commands/protocols/get/sender/local-get-command.js b/src/commands/protocols/get/sender/local-get-command.js index 39cb5a1e0..c67e664ec 100644 --- a/src/commands/protocols/get/sender/local-get-command.js +++ b/src/commands/protocols/get/sender/local-get-command.js @@ -1,5 +1,9 @@ import Command from '../../../command.js'; -import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../../constants/constants.js'; +import { + OPERATION_ID_STATUS, + ERROR_TYPE, + TRIPLES_VISIBILITY, +} from '../../../../constants/constants.js'; class LocalGetCommand extends Command { constructor(ctx) { @@ -95,7 +99,13 @@ class LocalGetCommand extends Command { blockchain, ); const assertionPromise = this.tripleStoreService - .getAssertion(blockchain, contract, knowledgeCollectionId, knowledgeAssetId) + .getAssertion( + blockchain, + contract, + knowledgeCollectionId, + knowledgeAssetId, + TRIPLES_VISIBILITY.ALL, + ) .then((result) => { this.operationIdService.emitChangeEvent( OPERATION_ID_STATUS.GET.GET_LOCAL_GET_ASSERTION_END, diff --git a/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js b/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js new file mode 100644 index 000000000..306669aaf --- /dev/null +++ b/src/commands/protocols/publish/publish-validate-assertion-metadata-command.js @@ -0,0 +1,33 @@ +import ValidateAssertionMetadataCommand from '../common/validate-assertion-metadata-command.js'; +import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js'; + +class PublishValidateAssertionMetadataCommand extends ValidateAssertionMetadataCommand { + constructor(ctx) { + super(ctx); + this.operationIdService = ctx.operationIdService; + + this.errorType = ERROR_TYPE.PUBLISH.PUBLISH_VALIDATE_ASSERTION_METADATA_ERROR; + this.operationStartEvent = + OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_START; + this.operationEndEvent = + OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_METADATA_VALIDATION_END; + } + + /** + * Builds default publishValidateAssertionMetadataCommand + * @param map + * @returns {{add, data: *, delay: *, deadline: *}} + */ + default(map) { + const command = { + name: 'publishValidateAssertionMetadataCommand', + delay: 0, + retries: 0, + transactional: false, + }; + Object.assign(command, map); + return command; + } +} + +export default PublishValidateAssertionMetadataCommand; diff --git a/src/commands/protocols/publish/sender/publish-validate-asset-command.js b/src/commands/protocols/publish/sender/publish-validate-asset-command.js index 04362a48e..0ea278f2b 100644 --- a/src/commands/protocols/publish/sender/publish-validate-asset-command.js +++ b/src/commands/protocols/publish/sender/publish-validate-asset-command.js @@ -60,7 +60,7 @@ class PublishValidateAssetCommand extends ValidateAssetCommand { blockchain, ); const isValidAssertion = await this.validationService.validateDatasetRoot( - cachedData.dataset, + cachedData.dataset.public, datasetRoot, ); this.operationIdService.emitChangeEvent( diff --git a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js b/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js index b8053b866..a4809e327 100644 --- a/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js +++ b/src/commands/protocols/publish/sender/v1.0.0/v1-0-0-publish-request-command.js @@ -42,7 +42,7 @@ class PublishRequestCommand extends ProtocolRequestCommand { ); return { - dataset, + dataset: dataset.public, datasetRoot, blockchain, }; diff --git a/src/commands/protocols/publish/store-assertion-command.js b/src/commands/protocols/publish/store-assertion-command.js index b906aeb99..3d2255eb0 100644 --- a/src/commands/protocols/publish/store-assertion-command.js +++ b/src/commands/protocols/publish/store-assertion-command.js @@ -24,24 +24,8 @@ class StoreAssertionCommand extends Command { blockchain, OPERATION_ID_STATUS.PUBLISH_FINALIZATION.PUBLISH_FINALIZATION_STORE_ASSERTION_START, ); - try { - const knowledgeAssetsCount = this.dataService.countDistinctSubjects(assertion); - const knowledgeAssetsUALs = []; - const knowledgeAssetStates = []; - for (let i = 0; i < knowledgeAssetsCount; i += 1) { - knowledgeAssetsUALs.push(`${ual}/${i + 1}`); - knowledgeAssetStates.push(0); - } - - // eslint-disable-next-line no-await-in-loop - await this.tripleStoreService.insertKnowledgeCollection( - TRIPLE_STORE_REPOSITORIES.DKG, - ual, - knowledgeAssetsUALs, - knowledgeAssetStates, - assertion, - ); + await this._insertAssertion(assertion, ual); } catch (e) { await this.handleError(operationId, blockchain, e.message, this.errorType, true); } @@ -61,6 +45,14 @@ class StoreAssertionCommand extends Command { return Command.empty(); } + async _insertAssertion(assertion, ual) { + await this.tripleStoreService.insertKnowledgeCollection( + TRIPLE_STORE_REPOSITORIES.DKG, + ual, + assertion, + ); + } + /** * Builds default storeAssertionCommand * @param map diff --git a/src/commands/protocols/update/update-assertion-command.js b/src/commands/protocols/update/update-assertion-command.js new file mode 100644 index 000000000..b4b659eab --- /dev/null +++ b/src/commands/protocols/update/update-assertion-command.js @@ -0,0 +1,91 @@ +import { kcTools } from 'assertion-tools'; +import Command from '../../command.js'; +import { + // OPERATION_ID_STATUS, + ERROR_TYPE, + TRIPLE_STORE_REPOSITORY, + TRIPLES_VISIBILITY, +} from '../../../constants/constants.js'; + +class UpdateAssertionCommand extends Command { + constructor(ctx) { + super(ctx); + this.operationIdService = ctx.operationIdService; + this.ualService = ctx.ualService; + this.dataService = ctx.dataService; + this.tripleStoreService = ctx.tripleStoreService; + this.blockchainModuleManager = ctx.blockchainModuleManager; + + this.errorType = ERROR_TYPE.UPDATE.UPDATE_ASSERTION_ERROR; + } + + async execute(command) { + const { operationId, ual, blockchain, assertion, firstNewKAIndex, updateStateIndex } = + command.data; + const validateCurrentData = this.validateCurrentData(ual); + if (this.validateCurrentData(validateCurrentData)) { + const preUpdateUalNamedGraphs = + // Old subjects old ual from select returned here probably {s, g} + await this.tripleStoreService.moveToHistoricAndDeleteAssertion( + ual, + updateStateIndex - 1, + ); + + await this.tripleStoreService.insertUpdatedKnowledgeCollection( + preUpdateUalNamedGraphs, + ual, + assertion, + firstNewKAIndex, + ); + } else { + await this.handleError( + operationId, + blockchain, + `Data in current DKG doesn't match pre update data for ${ual}.`, + ERROR_TYPE.UPDATE_FINALIZATION.UPDATE_FINALIZATION_NO_OLD_DATA, + true, + ); + } + + return Command.empty(); + } + + // TODO: Move maybe outside of the command into metadata validation command (but it's not metadata) + async validateCurrentData(ual) { + const { blockchain, contract, knowledgeCollectionId } = this.ualService.resolveUAL(ual); + const assertionIds = await this.blockchainModuleManager.getAssertionIds( + blockchain, + contract, + knowledgeCollectionId, + ); + const assertionIdOfCurrent = assertionIds[assertionIds.length() - 2]; + + const preUpdateAssertion = await this.tripleStoreService.getKnowledgeAssetNamedGraph( + TRIPLE_STORE_REPOSITORY.DKG, + ual, + TRIPLES_VISIBILITY.PUBLIC, + ); + + const preUpdateMerkleRoot = kcTools.calculateMerkleRoot(preUpdateAssertion); + + return assertionIdOfCurrent === preUpdateMerkleRoot; + } + + /** + * Builds default updateAssertionCommand + * @param map + * @returns {{add, data: *, delay: *, deadline: *}} + */ + default(map) { + const command = { + name: 'updateAssertionCommand', + delay: 0, + retries: 0, + transactional: false, + }; + Object.assign(command, map); + return command; + } +} + +export default UpdateAssertionCommand; diff --git a/src/commands/protocols/update/update-validate-assertion-metadata-command.js b/src/commands/protocols/update/update-validate-assertion-metadata-command.js new file mode 100644 index 000000000..ae2e42ba2 --- /dev/null +++ b/src/commands/protocols/update/update-validate-assertion-metadata-command.js @@ -0,0 +1,33 @@ +import ValidateAssertionMetadataCommand from '../common/validate-assertion-metadata-command.js'; +import { OPERATION_ID_STATUS, ERROR_TYPE } from '../../../constants/constants.js'; + +class UpdateValidateAssertionMetadataCommand extends ValidateAssertionMetadataCommand { + constructor(ctx) { + super(ctx); + this.operationIdService = ctx.operationIdService; + + this.errorType = ERROR_TYPE.UPDATE.UPDATE_VALIDATE_ASSERTION_METADATA_ERROR; + this.operationStartEvent = + OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_METADATA_VALIDATION_START; + this.operationEndEvent = + OPERATION_ID_STATUS.UPDATE_FINALIZATION.UPDATE_FINALIZATION_METADATA_VALIDATION_END; + } + + /** + * Builds default updateValidateAssertionMetadataCommand + * @param map + * @returns {{add, data: *, delay: *, deadline: *}} + */ + default(map) { + const command = { + name: 'updateValidateAssertionMetadataCommand', + delay: 0, + retries: 0, + transactional: false, + }; + Object.assign(command, map); + return command; + } +} + +export default UpdateValidateAssertionMetadataCommand; diff --git a/src/constants/constants.js b/src/constants/constants.js index eb5e23e95..1aaf6acde 100644 --- a/src/constants/constants.js +++ b/src/constants/constants.js @@ -33,7 +33,16 @@ export const ZERO_ADDRESS = ethers.constants.AddressZero; export const SCHEMA_CONTEXT = 'http://schema.org/'; +export const PRIVATE_ASSERTION_PREDICATE = + 'https://ontology.origintrail.io/dkg/1.0#privateMerkleRoot'; + export const TRIPLE_ANNOTATION_LABEL_PREDICATE = 'https://ontology.origintrail.io/dkg/1.0#label'; + +export const PRIVATE_RESOURCE_PREDICATE = + 'https://ontology.origintrail.io/dkg/1.0#representsPrivateResource'; + +export const PRIVATE_HASH_SUBJECT_PREFIX = 'https://ontology.origintrail.io/dkg/1.0#metadata-hash:'; + export const UAL_PREDICATE = ''; export const COMMIT_BLOCK_DURATION_IN_BLOCKS = 5; @@ -385,9 +394,10 @@ export const ERROR_TYPE = { PUBLISH_LOCAL_STORE_REMOTE_ERROR: 'PublishLocalStoreRemoteError', PUBLISH_FIND_NODES_ERROR: 'PublishFindNodesError', PUBLISH_STORE_REQUEST_ERROR: 'PublishStoreRequestError', + PUBLISH_VALIDATE_ASSERTION_METADATA_ERROR: 'PublishValidateAssertionMetadataError', + PUBLISH_ERROR: 'PublishError', }, - VALIDATE_ASSERTION_METADATA_ERROR: 'ValidateAssertionMetadataError', STORE_ASSERTION_ERROR: 'StoreAssertionError', UPDATE: { UPDATE_INIT_ERROR: 'UpdateInitError', @@ -402,6 +412,8 @@ export const ERROR_TYPE = { UPDATE_DELETE_PENDING_STATE_ERROR: 'UpdateDeletePendingStateError', UPDATE_VALIDATE_ASSET_ERROR: 'UpdateValidateAssetError', UPDATE_STORE_REQUEST_ERROR: 'UpdateStoreRequestError', + UPDATE_VALIDATE_ASSERTION_METADATA_ERROR: 'UpadateValidateAssertionMetadataError', + UPDATE_ASSERTION_ERROR: 'UpdateAssertionError', }, GET: { GET_ROUTE_ERROR: 'GetRouteError', @@ -455,6 +467,13 @@ export const ERROR_TYPE = { FINALITY_REQUEST_ERROR: 'FinalityRequestError', FINALITY_REQUEST_REMOTE_ERROR: 'FinalityRequestRemoteError', }, + PUBLISH_FINALIZATION: { + PUBLISH_FINALIZATION_NO_CACHED_DATA: 'PublishFinalizationNoCachedData', + }, + UPDATE_FINALIZATION: { + UPDATE_FINALIZATION_NO_CACHED_DATA: 'UpdateFinalizationNoCachedData', + UPDATE_FINALIZATION_NO_OLD_DATA: 'UpdateFinalizationNoOldData', + }, }; export const OPERATION_ID_STATUS = { PENDING: 'PENDING', @@ -588,6 +607,15 @@ export const OPERATION_ID_STATUS = { PUBLISH_FINALIZATION_STORE_ASSERTION_END: 'PUBLISH_FINALIZATION_STORE_ASSERTION_END', PUBLISH_FINALIZATION_END: 'PUBLISH_FINALIZATION_END', }, + UPDATE_FINALIZATION: { + UPDATE_FINALIZATION_START: 'UPDATE_FINALIZATION_START', + UPDATE_FINALIZATION_METADATA_VALIDATION_START: + 'UPDATE_FINALIZATION_METADATA_VALIDATION_START', + UPDATE_FINALIZATION_METADATA_VALIDATION_END: 'UPDATE_FINALIZATION_METADATA_VALIDATION_END', + UPDATE_FINALIZATION_STORE_ASSERTION_START: 'UPDATE_FINALIZATION_STORE_ASSERTION_START', + UPDATE_FINALIZATION_STORE_ASSERTION_END: 'UPDATE_FINALIZATION_STORE_ASSERTION_END', + UPDATE_FINALIZATION_END: 'UPDATE_FINALIZATION_END', + }, UPDATE: { UPDATE_START: 'UPDATE_START', UPDATE_INIT_START: 'UPDATE_INIT_START', @@ -1124,4 +1152,11 @@ export const LOCAL_INSERT_FOR_CURATED_PARANET_RETRY_DELAY = 1000; export const TRIPLE_STORE_REPOSITORY = { DKG: 'dkg', + DKG_HISTORIC: 'dkg-historic', +}; + +export const TRIPLES_VISIBILITY = { + PUBLIC: 'public', + PRIVATE: 'private', + ALL: 'all', }; diff --git a/src/controllers/http-api/v0/request-schema/publish-schema-v0.js b/src/controllers/http-api/v0/request-schema/publish-schema-v0.js index f3bcce648..7fb822b48 100644 --- a/src/controllers/http-api/v0/request-schema/publish-schema-v0.js +++ b/src/controllers/http-api/v0/request-schema/publish-schema-v0.js @@ -8,11 +8,24 @@ export default (argumentsObject) => ({ maxLength: 66, }, dataset: { - type: 'array', - items: { - type: 'string', + type: 'object', + properties: { + public: { + type: 'array', + items: { + type: 'string', + }, + minItems: 1, + }, + private: { + type: 'array', + items: { + type: 'string', + }, + }, }, - minItems: 1, + required: ['public'], + additionalProperties: false, }, blockchain: { enum: argumentsObject.blockchainImplementationNames, diff --git a/src/modules/triple-store/implementation/ot-triple-store.js b/src/modules/triple-store/implementation/ot-triple-store.js index e9ae282ad..2051af4f3 100644 --- a/src/modules/triple-store/implementation/ot-triple-store.js +++ b/src/modules/triple-store/implementation/ot-triple-store.js @@ -8,6 +8,7 @@ import { UAL_PREDICATE, BASE_NAMED_GRAPHS, TRIPLE_ANNOTATION_LABEL_PREDICATE, + TRIPLES_VISIBILITY, } from '../../../constants/constants.js'; class OtTripleStore { @@ -100,12 +101,12 @@ class OtTripleStore { await Promise.all(ensureConnectionPromises); } - async insertKnowledgeCollectionIntoUnifiedGraph(repository, namedGraph, collectionNQuads) { + async insetAssertionInNamedGraph(repository, namedGraph, nquads) { const query = ` PREFIX schema: <${SCHEMA_CONTEXT}> INSERT DATA { GRAPH <${namedGraph}> { - ${collectionNQuads.join('\n')} + ${nquads.join('\n')} } } `; @@ -265,14 +266,14 @@ class OtTripleStore { return this.ask(repository, query); } - async createKnowledgeCollectionNamedGraphs(repository, uals, assetsNQuads) { + async createKnowledgeCollectionNamedGraphs(repository, uals, assetsNQuads, visibility) { const query = ` PREFIX schema: <${SCHEMA_CONTEXT}> INSERT DATA { ${uals .map( (ual, index) => ` - GRAPH <${ual}> { + GRAPH <${ual}/${visibility}> { ${assetsNQuads[index].join('\n')} } `, @@ -290,7 +291,19 @@ class OtTripleStore { await this.queryVoid(repository, query); } - async getKnowledgeCollectionNamedGraphs(repository, ual, sort) { + async getKnowledgeCollectionNamedGraphs(repository, ual, visibility, sort) { + let visibilityFilter; + switch (visibility) { + case TRIPLES_VISIBILITY.PUBLIC: + case TRIPLES_VISIBILITY.PRIVATE: + visibilityFilter = `&& STRENDS(STR(?g), "${visibility}")`; + break; + case TRIPLES_VISIBILITY.ALL: + visibilityFilter = ''; + break; + default: + throw new Error(`Unsupported visibility: ${visibility}`); + } const query = ` PREFIX schema: <${SCHEMA_CONTEXT}> CONSTRUCT { ?s ?p ?o . } @@ -298,26 +311,10 @@ class OtTripleStore { GRAPH ?g { ?s ?p ?o . } - FILTER(STRSTARTS(STR(?g), "${ual}/")) - } - ${sort ? 'ORDER BY ?s' : ''} - `; - - return this.construct(repository, query); - } - - async getKnowledgeCollectionNamedGraphsPublic(repository, ual, sort) { - const query = ` - PREFIX schema: <${SCHEMA_CONTEXT}> - CONSTRUCT { ?s ?p ?o } - WHERE { - GRAPH ?g { - ?s ?p ?o . - FILTER NOT EXISTS { - << ?s ?p ?o >> ${TRIPLE_ANNOTATION_LABEL_PREDICATE} "private" . - } - } - FILTER(STRSTARTS(STR(?g), "${ual}/")) + FILTER( + STRSTARTS(STR(?g), "${ual}/") + ${visibilityFilter} + ) } ${sort ? 'ORDER BY ?s' : ''} `; @@ -346,41 +343,54 @@ class OtTripleStore { await this.queryVoid(repository, query); } - async getKnowledgeAssetNamedGraph(repository, ual) { - const query = ` - PREFIX schema: <${SCHEMA_CONTEXT}> - CONSTRUCT { ?s ?p ?o } - WHERE { - GRAPH <${ual}> { - ?s ?p ?o . - } - } - `; + async getKnowledgeAssetNamedGraph(repository, ual, visibility) { + let whereClause; - return this.construct(repository, query); - } + switch (visibility) { + case TRIPLES_VISIBILITY.PUBLIC: + case TRIPLES_VISIBILITY.PRIVATE: + whereClause = ` + WHERE { + GRAPH <${ual}/${visibility}> { + ?s ?p ?o . + } + } + `; + break; + case TRIPLES_VISIBILITY.ALL: + whereClause = ` + WHERE { + { + GRAPH <${ual}/${TRIPLES_VISIBILITY.PUBLIC}> { + ?s ?p ?o . + } + } + UNION + { + GRAPH <${ual}/${TRIPLES_VISIBILITY.PRIVATE}> { + ?s ?p ?o . + } + } + } + `; + break; + default: + throw new Error(`Unsupported visibility: ${visibility}`); + } - async getKnowledgeAssetNamedGraphPublic(repository, ual) { const query = ` PREFIX schema: <${SCHEMA_CONTEXT}> - CONSTRUCT { ?s ?p ?o } - WHERE { - GRAPH <${ual}> { - ?s ?p ?o . - FILTER NOT EXISTS { - << ?s ?p ?o >> ${TRIPLE_ANNOTATION_LABEL_PREDICATE} "private" . - } - } - } + CONSTRUCT { ?s ?p ?o } + ${whereClause} `; return this.construct(repository, query); } - async knowledgeAssetNamedGraphExists(repository, ual) { + async knowledgeAssetNamedGraphExists(repository, name) { const query = ` ASK { - GRAPH <${ual}> { + GRAPH <${name}> { ?s ?p ?o } } @@ -456,6 +466,31 @@ class OtTripleStore { return this.ask(repository, query); } + async findAllNamedGraphsByUAL(repository, ual) { + const query = ` + SELECT DISTINCT ?g + WHERE { + GRAPH ?g { + ?s ?p ?o + } + FILTER(STRSTARTS(STR(?g), "${ual}")) + }`; + + this.select(repository, query); + } + + async findAllSubjectsWithGraphNames(repository, ual) { + const query = ` + SELECT DISTINCT ?s ?g + WHERE { + GRAPH ?g { + ?s ?p ?o + } + FILTER(STRSTARTS(STR(?g), "${ual}")) + }`; + this.select(repository, query); + } + async construct(repository, query) { return this._executeQuery(repository, query, MEDIA_TYPES.N_QUADS); } diff --git a/src/modules/triple-store/triple-store-module-manager.js b/src/modules/triple-store/triple-store-module-manager.js index fa0a0a364..7345b7ada 100644 --- a/src/modules/triple-store/triple-store-module-manager.js +++ b/src/modules/triple-store/triple-store-module-manager.js @@ -5,19 +5,12 @@ class TripleStoreModuleManager extends BaseModuleManager { return this.getImplementation().module.initializeParanetRepository(repository); } - async insertKnowledgeCollectionIntoUnifiedGraph( - implementationName, - repository, - namedGraph, - collectionNQuads, - ) { + async insetAssertionInNamedGraph(implementationName, repository, namedGraph, nquads) { if (this.getImplementation(implementationName)) { - return this.getImplementation( - implementationName, - ).module.insertKnowledgeCollectionIntoUnifiedGraph( + return this.getImplementation(implementationName).module.insetAssertionInNamedGraph( repository, namedGraph, - collectionNQuads, + nquads, ); } } @@ -117,11 +110,22 @@ class TripleStoreModuleManager extends BaseModuleManager { } } - async createKnowledgeCollectionNamedGraphs(implementationName, repository, uals, assetsNQuads) { + async createKnowledgeCollectionNamedGraphs( + implementationName, + repository, + uals, + assetsNQuads, + visibility, + ) { if (this.getImplementation(implementationName)) { return this.getImplementation( implementationName, - ).module.createKnowledgeCollectionNamedGraphs(repository, uals, assetsNQuads); + ).module.createKnowledgeCollectionNamedGraphs( + repository, + uals, + assetsNQuads, + visibility, + ); } } @@ -133,19 +137,11 @@ class TripleStoreModuleManager extends BaseModuleManager { } } - async getKnowledgeCollectionNamedGraphs(implementationName, repository, ual, sort) { - if (this.getImplementation(implementationName)) { - return this.getImplementation( - implementationName, - ).module.getKnowledgeCollectionNamedGraphs(repository, ual, sort); - } - } - - async getKnowledgeCollectionNamedGraphsPublic(implementationName, repository, ual, sort) { + async getKnowledgeCollectionNamedGraphs(implementationName, repository, ual, visibility, sort) { if (this.getImplementation(implementationName)) { return this.getImplementation( implementationName, - ).module.getKnowledgeCollectionNamedGraphsPublic(repository, ual, sort); + ).module.getKnowledgeCollectionNamedGraphs(repository, ual, visibility, sort); } } @@ -166,28 +162,21 @@ class TripleStoreModuleManager extends BaseModuleManager { } } - async getKnowledgeAssetNamedGraph(implementationName, repository, ual) { + async getKnowledgeAssetNamedGraph(implementationName, repository, ual, visibility) { if (this.getImplementation(implementationName)) { - return this.getImplementation(implementationName).module.getKnowledgeAssetNamedGraph( + return this.getImplementation(implementationName).module.getAssertionFromNamedGraph( repository, ual, + visibility, ); } } - async getKnowledgeAssetNamedGraphPublic(implementationName, repository, ual) { - if (this.getImplementation(implementationName)) { - return this.getImplementation( - implementationName, - ).module.getKnowledgeAssetNamedGraphPublic(repository, ual); - } - } - - async knowledgeAssetNamedGraphExists(implementationName, repository, ual) { + async knowledgeAssetNamedGraphExists(implementationName, repository, name) { if (this.getImplementation(implementationName)) { return this.getImplementation(implementationName).module.knowledgeAssetNamedGraphExists( repository, - ual, + name, ); } } @@ -258,6 +247,25 @@ class TripleStoreModuleManager extends BaseModuleManager { } } + async findAllNamedGraphsByUAL(implementationName, repository, ual) { + if (this.getImplementation(implementationName)) { + return this.getImplementation(implementationName).module.findAllNamedGraphsByUAL( + repository, + ual, + ); + } + } + + async findAllSubjectsWithGraphNames(implementationName, repository, ual) { + if (this.getImplementation(implementationName)) { + return this.getImplementation(implementationName).module.findAllSubjectsWithGraphNames( + implementationName, + repository, + ual, + ); + } + } + getName() { return 'tripleStore'; } diff --git a/src/service/data-service.js b/src/service/data-service.js index 652ea5d61..826af29d3 100644 --- a/src/service/data-service.js +++ b/src/service/data-service.js @@ -1,5 +1,6 @@ +import { ethers } from 'ethers'; import { kcTools } from 'assertion-tools'; -import { XML_DATA_TYPES } from '../constants/constants.js'; +import { XML_DATA_TYPES, PRIVATE_HASH_SUBJECT_PREFIX } from '../constants/constants.js'; class DataService { constructor(ctx) { @@ -67,6 +68,52 @@ class DataService { return value; } } + + // Asumes nobody is using PRIVATE_HASH_SUBJECT_PREFIX subject in assertion + quadsContainsPrivateRepresentations(quads) { + return ( + quads[0].split(' ')[0].startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`) || + quads[quads.length - 1].split(' ')[0].startsWith(`<${PRIVATE_HASH_SUBJECT_PREFIX}`) + ); + } + + generateHashFromString(string) { + return ethers.utils.sha256(ethers.utils.solidityPack(['string'], [string])); + } + + splitConnectedArrays(publicTriples) { + const groupedPublic = []; + let currentSubject = publicTriples[0].split(' ')[0]; + let currentSubjectHash = currentSubject.startsWith('`; + let currentKA = [publicTriples[0]]; + + for (let i = 1; i < publicTriples.length; i += 1) { + const [subject] = publicTriples[i].split(' '); + const subjectHash = subject.startsWith('`; + + if ( + currentSubject === subject || + currentSubjectHash === subject || + subjectHash === currentSubject + ) { + currentKA.push(publicTriples[i]); + } else { + groupedPublic.push(currentKA); + currentSubject = subject; + currentSubjectHash = subjectHash; + currentKA = [publicTriples[i]]; + } + } + + // Push the last group + groupedPublic.push(currentKA); + + return groupedPublic; + } } export default DataService; diff --git a/src/service/triple-store-service.js b/src/service/triple-store-service.js index f6776d77b..1254247ae 100644 --- a/src/service/triple-store-service.js +++ b/src/service/triple-store-service.js @@ -1,11 +1,10 @@ /* eslint-disable no-await-in-loop */ import { setTimeout } from 'timers/promises'; -import { kcTools } from 'assertion-tools'; import { - SCHEMA_CONTEXT, BASE_NAMED_GRAPHS, TRIPLE_STORE_REPOSITORY, + TRIPLES_VISIBILITY, } from '../constants/constants.js'; class TripleStoreService { @@ -34,8 +33,6 @@ class TripleStoreService { async insertKnowledgeCollection( repository, knowledgeCollectionUAL, - knowledgeAssetsUALs, - knowledgeAssetsStates, triples, retries = 1, retryDelay = 0, @@ -45,24 +42,12 @@ class TripleStoreService { `to the Triple Store's ${repository} repository.`, ); - const [existsInUnifiedGraph, existsInNamedGraphs] = await Promise.all([ - this.tripleStoreModuleManager.knowledgeCollectionNamedGraphsExist( + const existsInNamedGraphs = + await this.tripleStoreModuleManager.knowledgeCollectionNamedGraphsExist( this.repositoryImplementations[repository], repository, knowledgeCollectionUAL, - ), - this.tripleStoreModuleManager.knowledgeCollectionExistsInUnifiedGraph( - this.repositoryImplementations[repository], - repository, - BASE_NAMED_GRAPHS.UNIFIED, - knowledgeCollectionUAL, - ), - ]); - - const knowledgeAssetsStatesUALs = knowledgeAssetsUALs.map( - (ual, index) => `${ual}:${knowledgeAssetsStates[index]}`, - ); - const knowledgeAssetsTriples = this.dataService.groupTriplesBySubject(triples); + ); // TODO: Add with the introduction of RDF-star mode // const tripleAnnotations = this.dataService.createTripleAnnotations( @@ -71,38 +56,65 @@ class TripleStoreService { // knowledgeAssetsUALs.map((ual) => `<${ual}>`), // ); // const unifiedGraphTriples = [...triples, ...tripleAnnotations]; + const publicKnowledgeAssetsTriples = this.dataService.splitConnectedArrays( + triples.public ?? triples, + ); + const publicKnowledgeAssetsUALs = []; + for (let i = 1; i <= publicKnowledgeAssetsTriples.length; i += 1) { + publicKnowledgeAssetsUALs.push(`${knowledgeCollectionUAL}/${i}`); + } const promises = []; - if (!existsInNamedGraphs) { - promises.push( - this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs( - this.repositoryImplementations[repository], - repository, - knowledgeAssetsStatesUALs, - knowledgeAssetsTriples, - ), + if (triples.private?.length && !existsInNamedGraphs) { + const privateKnowledgeAssetsTriples = this.dataService.groupTriplesBySubject( + triples.private, ); + const privateKnowledgeAssetsUALs = []; + let publicIndex = 0; + let privateIndex = 0; + while ( + publicIndex < publicKnowledgeAssetsTriples.length && + privateIndex < privateKnowledgeAssetsTriples.length + ) { + // const [privateSubject] = privateKnowledgeAssetsTriples[privateIndex][0].split(' '); + // Check if first triple is content or private existence identifier + if ( + this.dataService.quadsContainsPrivateRepresentations( + publicKnowledgeAssetsTriples[publicIndex], + ) + ) { + privateKnowledgeAssetsUALs.push(publicKnowledgeAssetsUALs[publicIndex]); + privateIndex += 1; + } + publicIndex += 1; + } + if (privateKnowledgeAssetsUALs.length > 0) { + promises.push( + this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs( + this.repositoryImplementations[repository], + repository, + privateKnowledgeAssetsUALs, + privateKnowledgeAssetsTriples, + TRIPLES_VISIBILITY.PRIVATE, + ), + ); + } } - - if (!existsInUnifiedGraph) { + if (!existsInNamedGraphs) { promises.push( - this.tripleStoreModuleManager.insertKnowledgeCollectionIntoUnifiedGraph( + this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs( this.repositoryImplementations[repository], repository, - BASE_NAMED_GRAPHS.UNIFIED, - triples, + publicKnowledgeAssetsUALs, + publicKnowledgeAssetsTriples, + TRIPLES_VISIBILITY.PUBLIC, ), ); } - - const metadataTriples = await kcTools.formatDataset({ - '@context': SCHEMA_CONTEXT, - '@graph': knowledgeAssetsUALs.map((ual, index) => ({ - '@id': ual, - states: [knowledgeAssetsStatesUALs[index]], - })), - }); + const metadataTriples = publicKnowledgeAssetsUALs + .map((ual) => `<${ual}> "${ual}:0" .`) + .join('\n'); promises.push( this.tripleStoreModuleManager.insertKnowledgeCollectionMetadata( @@ -146,18 +158,6 @@ class TripleStoreService { `to the Triple Store's ${repository} repository. Rolling back data.`, ); - // Rollback insertions if data didn't exist before the operation - if (!existsInUnifiedGraph) { - this.logger.info( - `Rolling back Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` + - `from the Triple Store's ${repository} repository Unified Graph.`, - ); - await this.tripleStoreModuleManager.deleteKnowledgeCollectionFromUnifiedGraph( - this.repositoryImplementations[repository], - repository, - knowledgeCollectionUAL, - ); - } if (!existsInNamedGraphs) { this.logger.info( `Rolling back Knowledge Collection with the UAL: ${knowledgeCollectionUAL} ` + @@ -166,7 +166,7 @@ class TripleStoreService { await this.tripleStoreModuleManager.deleteKnowledgeCollectionNamedGraphs( this.repositoryImplementations[repository], repository, - knowledgeAssetsStatesUALs, + publicKnowledgeAssetsUALs, ); } @@ -179,6 +179,83 @@ class TripleStoreService { } } + async insertUpdatedKnowledgeCollection(preUpdateUalNamedGraphs, ual, triples, firstNewKAIndex) { + const preUpdateSubjectUalMap = new Map( + preUpdateUalNamedGraphs.map((entry) => [ + entry.subject, + entry.g.split('/').slice(0, -1).join('/'), + ]), + ); + + const publicKnowledgeAssetsTriples = this.dataService.groupTriplesBySubject( + triples.public ?? triples, + ); + + const publicKnowledgeAssetsSubjects = publicKnowledgeAssetsTriples.map( + ([triple]) => triple.split(' ')[0], + ); + const publicKnowledgeAssetsStatesUALs = []; + let newKnowledgeAssetId = firstNewKAIndex; + for (const subject of publicKnowledgeAssetsSubjects) { + if (preUpdateSubjectUalMap.has(subject)) { + publicKnowledgeAssetsStatesUALs.push(preUpdateSubjectUalMap.get(subject)); + } else { + publicKnowledgeAssetsStatesUALs.push(`${ual}/${newKnowledgeAssetId}`); + newKnowledgeAssetId += 1; + } + } + + const promises = []; + + promises.push( + this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs( + this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG], + TRIPLE_STORE_REPOSITORY.DKG, + publicKnowledgeAssetsStatesUALs, + publicKnowledgeAssetsTriples, + TRIPLES_VISIBILITY.PUBLIC, + ), + ); + + if (triples.private?.length) { + const privateKnowledgeAssetsTriples = this.dataService.groupTriplesBySubject( + triples.private, + ); + + const publicSubjectsMap = new Map( + publicKnowledgeAssetsTriples.map(([triple], index) => { + const [subject] = triple.split(' '); + return [subject, index]; + }), + ); + + const privateKnowledgeAssetsStatesUALs = privateKnowledgeAssetsTriples.reduce( + (result, [triple]) => { + const [privateSubject] = triple.split(' '); // groupTriplesBySubject guarantees format + if (publicSubjectsMap.has(privateSubject)) { + result.push( + publicKnowledgeAssetsStatesUALs[publicSubjectsMap.get(privateSubject)], + ); + } + return result; + }, + [], + ); + + if (privateKnowledgeAssetsStatesUALs.length > 0) { + promises.push( + this.tripleStoreModuleManager.createKnowledgeCollectionNamedGraphs( + this.repositoryImplementations[TRIPLE_STORE_REPOSITORY.DKG], + TRIPLE_STORE_REPOSITORY.DKG, + privateKnowledgeAssetsStatesUALs, + privateKnowledgeAssetsTriples, + TRIPLES_VISIBILITY.PRIVATE, + ), + ); + } + } + } + async moveKnowledgeCollectionBetweenUnifiedGraphs(fromRepository, toRepository, ual) { const knowledgeCollection = await this.tripleStoreModuleManager.getKnowledgeCollectionFromUnifiedGraph( @@ -201,7 +278,7 @@ class TripleStoreService { // ]; await Promise.all([ - this.tripleStoreModuleManager.insertKnowledgeCollectionIntoUnifiedGraph( + this.tripleStoreModuleManager.insetAssertionInNamedGraph( this.repositoryImplementations[toRepository], toRepository, BASE_NAMED_GRAPHS.HISTORICAL_UNIFIED, @@ -236,8 +313,10 @@ class TripleStoreService { contract, knowledgeCollectionId, knowledgeAssetId, + visibility = TRIPLES_VISIBILITY.PUBLIC, repository = TRIPLE_STORE_REPOSITORY.DKG, ) { + // TODO: Use stateId const ual = `did:dkg:${blockchain}/${contract}/${knowledgeCollectionId}${ knowledgeAssetId ? `/${knowledgeAssetId}` : '' }`; @@ -246,16 +325,19 @@ class TripleStoreService { let nquads; if (knowledgeAssetId) { - nquads = await this.tripleStoreModuleManager.getKnowledgeAssetNamedGraph( + nquads = await this.tripleStoreModuleManager.getNamedGraph( this.repositoryImplementations[repository], repository, - `${ual}:0`, // TO DO: Add state with implemented update + // TODO: Add state with implemented update + `${ual}:0`, + visibility, ); } else { nquads = await this.tripleStoreModuleManager.getKnowledgeCollectionNamedGraphs( this.repositoryImplementations[repository], repository, ual, + visibility, ); } @@ -326,6 +408,63 @@ class TripleStoreService { ); } + async moveToHistoricAndDeleteAssertion(ual, stateIndex) { + // Find all named graph that exist for given UAL + const ualNamedGraphs = this.tripleStoreModuleManager.findAllNamedGraphsByUAL( + TRIPLE_STORE_REPOSITORY.DKG, + ual, + ); + let stateNamedGraphExistInHistoric = []; + const ulaNamedGraphsWithState = []; + const checkPromises = []; + // Check if they already exist in historic + for (const ulaNamedGraph of ualNamedGraphs) { + const parts = ulaNamedGraph.split('/'); + parts[parts.length - 2] = `${parts[parts.length - 2]}:${stateIndex}`; + const ulaNamedGraphWithState = parts.join('/'); + ulaNamedGraphsWithState.push(ulaNamedGraphWithState); + checkPromises.push( + this.tripleStoreModuleManager.namedGraphExist( + TRIPLE_STORE_REPOSITORY.DKG_HISTORIC, + ulaNamedGraphWithState, + ), + ); + } + stateNamedGraphExistInHistoric = await Promise.all(checkPromises); + // const insertPromises = []; + + // Insert them in UAL:latestStateIndex - 1 named graph in historic + for (const [index, promiseResult] of stateNamedGraphExistInHistoric.entries()) { + if (!promiseResult) { + const nquads = await this.tripleStoreModuleManager.getAssertionFromNamedGraph( + TRIPLE_STORE_REPOSITORY.DKG, + ualNamedGraphs[index], + ); + await this.tripleStoreModuleManager.insetAssertionInNamedGraph( + TRIPLE_STORE_REPOSITORY.DKG_HISTORIC, + ulaNamedGraphsWithState[index], + nquads, + ); + } + } + + await this.tripleStoreModuleManager.deleteKnowledgeCollectionNamedGraphs( + TRIPLE_STORE_REPOSITORY.DKG, + ualNamedGraphs, + ); + + return ualNamedGraphs; + } + + async getKnowledgeAssetNamedGraph(repository, ual, visibility) { + return this.tripleStoreModuleManager.getKnowledgeAssetNamedGraph( + this.repositoryImplementations[repository], + repository, + ual, + visibility, + ); + } + async select(query, repository = TRIPLE_STORE_REPOSITORY.DKG) { return this.tripleStoreModuleManager.select( this.repositoryImplementations[repository], From e52e8983941c5781fdcba019f5b2996e2d199521 Mon Sep 17 00:00:00 2001 From: Mihajlo Pavlovic Date: Tue, 10 Dec 2024 16:38:27 +0100 Subject: [PATCH 2/2] linter fix --- src/service/data-service.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/service/data-service.js b/src/service/data-service.js index da5248cb2..187dbe8c5 100644 --- a/src/service/data-service.js +++ b/src/service/data-service.js @@ -91,7 +91,6 @@ class DataService { for (let i = 1; i < publicTriples.length; i += 1) { const [subject] = publicTriples[i].split(' '); - const subject = publicTriples[i].split(' ')[0]; const subjectHash = subject.startsWith('