diff --git a/demo/redirect-flow-example/.gitignore b/demo/redirect-flow-example/.gitignore index 4d29575d..800f3a80 100644 --- a/demo/redirect-flow-example/.gitignore +++ b/demo/redirect-flow-example/.gitignore @@ -10,6 +10,7 @@ # production /build +/dist # misc .DS_Store diff --git a/demo/redirect-flow-example/package-lock.json b/demo/redirect-flow-example/package-lock.json index 455648b1..ed42060a 100644 --- a/demo/redirect-flow-example/package-lock.json +++ b/demo/redirect-flow-example/package-lock.json @@ -9,8 +9,10 @@ "version": "0.1.0", "dependencies": { "@tkey/common-types": "^15.1.0", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", "@types/jest": "^27.5.2", "@types/node": "^16.18.48", "@types/react": "^18.3.11", @@ -19,6 +21,7 @@ "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", "@web3auth/mpc-core-kit": "file:../..", + "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -54,7 +57,7 @@ }, "../..": { "name": "@web3auth/mpc-core-kit", - "version": "3.2.4", + "version": "4.1.6-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -62,18 +65,19 @@ "@tkey/share-serialization": "^15.1.0", "@tkey/storage-layer-torus": "^15.1.0", "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.2.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.1-alpha.0", + "@toruslabs/tss-frost-common": "^1.0.2-alpha.0", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", @@ -81,11 +85,12 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", @@ -114,8 +119,9 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -123,6 +129,9 @@ }, "@toruslabs/tss-frost-lib": { "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true } } }, @@ -146,12 +155,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.25.7.tgz", - "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "license": "MIT", "dependencies": { - "@babel/highlight": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -159,30 +169,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.25.7.tgz", - "integrity": "sha512-9ickoLz+hcXCeh7jrcin+/SLWm+GkxE2kTvoYyp38p4WkdFXfQJxDFGWp/YHjiKLPx06z2A7W8XKuqbReXDzsw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.25.7.tgz", - "integrity": "sha512-yJ474Zv3cwiSOO9nXJuqzvwEeM+chDuQ8GJirw+pZ91sCGCyOZ3dJkVE09fTV0VEVzXyLWhh3G/AolYTPX7Mow==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/helper-compilation-targets": "^7.25.7", - "@babel/helper-module-transforms": "^7.25.7", - "@babel/helpers": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -198,12 +208,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.25.7.tgz", - "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7", + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", "jsesc": "^3.0.2" @@ -213,13 +224,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", - "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.25.7", - "@babel/helper-validator-option": "^7.25.7", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" @@ -229,28 +240,27 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", - "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "license": "MIT", "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", - "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.25.7", - "@babel/helper-simple-access": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "@babel/traverse": "^7.25.7" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -260,89 +270,61 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", - "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", - "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", - "license": "MIT", - "dependencies": { - "@babel/traverse": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", - "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.25.7.tgz", - "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "license": "MIT", "dependencies": { - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.25.7.tgz", - "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.25.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.7.tgz", - "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "license": "MIT", "dependencies": { - "@babel/types": "^7.25.7" + "@babel/types": "^7.26.0" }, "bin": { "parser": "bin/babel-parser.js" @@ -352,12 +334,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.7.tgz", - "integrity": "sha512-JD9MUnLbPL0WdVK8AWC7F7tTG2OS6u/AKKnsK+NdRhUiVdnzyR1S3kKQCaRLOiaULvUiqK6Z4JQE635VgtCFeg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -367,12 +349,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.7.tgz", - "integrity": "sha512-S/JXG/KrbIY06iyJPKfxr0qRxnhNOdkNXYBl/rmwgDd72cQLH9tEGkDm/yJPGvcSIUoikzfjMios9i+xT/uv9w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.25.7" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -382,9 +364,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.25.7.tgz", - "integrity": "sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", "license": "MIT", "dependencies": { "regenerator-runtime": "^0.14.0" @@ -394,30 +376,30 @@ } }, "node_modules/@babel/template": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.7.tgz", - "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/types": "^7.25.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.7.tgz", - "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.25.7", - "@babel/generator": "^7.25.7", - "@babel/parser": "^7.25.7", - "@babel/template": "^7.25.7", - "@babel/types": "^7.25.7", + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -426,97 +408,41 @@ } }, "node_modules/@babel/types": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.7.tgz", - "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@chaitanyapotti/register-service-worker": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/@chaitanyapotti/register-service-worker/-/register-service-worker-1.7.4.tgz", - "integrity": "sha512-+u78X4ljCleLy1okQMtYLTXGLHdFQcwai822xu3oHRTviKEIVkQTMNhCmbYTCiP24thY6AbH9g+c6p2LNU0pnA==", - "license": "MIT" - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "node_modules/@cbor-extract/cbor-extract-darwin-arm64": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@cbor-extract/cbor-extract-darwin-arm64/-/cbor-extract-darwin-arm64-2.2.0.tgz", + "integrity": "sha512-P7swiOAdF7aSi0H+tHtHtr6zrpF3aAq/W9FXx5HektRvLTM2O89xCyXF3pk7pLc7QpaY7AoaE8UowVf9QBdh3w==", "cpu": [ "arm64" ], "license": "MIT", "optional": true, "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } + "darwin" + ] }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "peer": true, - "engines": { - "node": ">=12" - } + "node_modules/@chaitanyapotti/register-service-worker": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/@chaitanyapotti/register-service-worker/-/register-service-worker-1.7.4.tgz", + "integrity": "sha512-+u78X4ljCleLy1okQMtYLTXGLHdFQcwai822xu3oHRTviKEIVkQTMNhCmbYTCiP24thY6AbH9g+c6p2LNU0pnA==", + "license": "MIT" }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.0.tgz", + "integrity": "sha512-CKyDpRbK1hXwv79soeTJNHb5EiG6ct3efd/FTPdzOWdbZZfGhpbcqIpiD0+vwmpu0wTIL97ZRPZu8vUt46nBSw==", "cpu": [ "arm64" ], @@ -527,313 +453,7 @@ ], "peer": true, "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "peer": true, - "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@ethereumjs/rlp": { @@ -945,9 +565,9 @@ } }, "node_modules/@noble/hashes": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", - "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.1.tgz", + "integrity": "sha512-pq5D8h10hHBjyqX+cfBm0i8JUXJ0UhczFc4r74zbuT9XgewFo2E3J1cOaGtdZynILNmQ685YWGzGE1Zv6io50w==", "license": "MIT", "engines": { "node": "^14.21.3 || >=16" @@ -995,9 +615,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "19.8.4", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-19.8.4.tgz", - "integrity": "sha512-XcRBNe0ws7KB0PMcUlpQqzzjjxMP8VdqirBz7CfB2XQ8xKmP3370p0cDvqs/4oKDHK4PCkmvVFX60tzakutylA==", + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.2.tgz", + "integrity": "sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==", "cpu": [ "x64" ], @@ -1011,9 +631,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", + "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", "cpu": [ "arm" ], @@ -1025,9 +645,9 @@ "peer": true }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", + "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", "cpu": [ "arm64" ], @@ -1039,9 +659,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", + "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", "cpu": [ "arm64" ], @@ -1053,9 +673,9 @@ "peer": true }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", + "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", "cpu": [ "x64" ], @@ -1066,10 +686,38 @@ ], "peer": true }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", + "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", + "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "peer": true + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", + "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", "cpu": [ "arm" ], @@ -1081,9 +729,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", + "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", "cpu": [ "arm" ], @@ -1095,9 +743,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", + "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", "cpu": [ "arm64" ], @@ -1109,9 +757,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", + "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", "cpu": [ "arm64" ], @@ -1123,9 +771,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", + "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", "cpu": [ "ppc64" ], @@ -1137,9 +785,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", + "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", "cpu": [ "riscv64" ], @@ -1151,9 +799,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", + "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", "cpu": [ "s390x" ], @@ -1165,9 +813,9 @@ "peer": true }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", "cpu": [ "x64" ], @@ -1178,9 +826,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", + "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", "cpu": [ "x64" ], @@ -1192,9 +840,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", + "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", "cpu": [ "arm64" ], @@ -1206,9 +854,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", + "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", "cpu": [ "ia32" ], @@ -1220,9 +868,9 @@ "peer": true }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", + "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", "cpu": [ "x64" ], @@ -1293,6 +941,21 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@simplewebauthn/browser": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/browser/-/browser-11.0.0.tgz", + "integrity": "sha512-KEGCStrl08QC2I561BzxqGiwoknblP6O1YW7jApdXLPtIqZ+vgJYAv8ssLCdm1wD8HGAHd49CJLkUF8X70x/pg==", + "license": "MIT", + "dependencies": { + "@simplewebauthn/types": "^11.0.0" + } + }, + "node_modules/@simplewebauthn/types": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/@simplewebauthn/types/-/types-11.0.0.tgz", + "integrity": "sha512-b2o0wC5u2rWts31dTgBkAtSNKGX0cvL6h8QedNsKmj8O4QoLFQFR3DBVBUlpyVEhYKA+mXGUaXbcOc4JdQ3HzA==", + "license": "MIT" + }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -1334,14 +997,15 @@ } }, "node_modules/@toruslabs/base-controllers": { - "version": "6.2.4", - "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.2.4.tgz", - "integrity": "sha512-VRki0iYnSL3Chy2W/mwk2dc3tiLuSR5a/dwaapCNn3SgMGIEgnJMwq1wNQO1l5eaHgl3eN7b/IL8Y2DfqHnW4g==", + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-6.3.2.tgz", + "integrity": "sha512-YnRAtEM9jVR71ZDPSJtb1P1biAz322hv9R3jKh7SttfI//JPvtw8UdSCCQjSF5cAWLqgOupqq15p+p9Ka0bSPA==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", "@toruslabs/broadcast-channel": "^11.0.0", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.3.3", + "@web3auth/auth": "^9.5.2", "async-mutex": "^0.5.0", "bignumber.js": "^9.1.2", "bowser": "^2.11.0", @@ -1389,9 +1053,9 @@ } }, "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", "engines": { "node": ">=18.x", @@ -1402,9 +1066,9 @@ } }, "node_modules/@toruslabs/customauth": { - "version": "20.3.0", - "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.0.tgz", - "integrity": "sha512-PxRd71s8WYvkp6Mpph8aUiU/vfq46adJOt+a/22JCRMOUMgiS1TzVAs8Eks5dpOS+FGjdowFLaJg+/UcBBoLrA==", + "version": "20.3.1", + "resolved": "https://registry.npmjs.org/@toruslabs/customauth/-/customauth-20.3.1.tgz", + "integrity": "sha512-oqzJh0WFf4rSwnXshEfh8c1ZqPhVjEvGuzI6LIUlot1OSrNituPLHWhzNW3OYw29+69jgolDBcOuSCN/Tq//Sw==", "license": "MIT", "dependencies": { "@chaitanyapotti/register-service-worker": "^1.7.4", @@ -1415,11 +1079,11 @@ "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", + "@toruslabs/torus.js": "^15.1.1", "base64url": "^3.0.1", "bowser": "^2.11.0", "deepmerge": "^4.3.1", - "eventemitter3": "^5.0.1", + "events": "^3.3.0", "loglevel": "^1.9.2" }, "engines": { @@ -1450,15 +1114,15 @@ } }, "node_modules/@toruslabs/fetch-node-details": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.0.1.tgz", - "integrity": "sha512-cV/X8d97W9kU/ibycV/4rfkDSjl+MIgwbKhsVqvgDtoE1mdjMSeCxJTfEDgjxqzUcVlHjcbeUpzCe8qa/Gvs6A==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", + "integrity": "sha512-k14RazfY4wKIUtdpfrSoUJasRNp2EMgv6ky4bGT1HYMPGU2JUNhvb6XTw5ISxfMrZuk04dLOhC4/XOtynFeFmQ==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -1479,12 +1143,12 @@ } }, "node_modules/@toruslabs/fnd-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.0.0.tgz", - "integrity": "sha512-zaYrm/HHHU4Evj/Et1HrVT8hmMaUpVw3Rcx2Gvp1W5pWZybbdEVoa0uqIANYxcr/NH7PUIU3DoRbk+bXx0kkYg==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", + "integrity": "sha512-nqfcigOuz3pQJi+Q+tdCaDUVCaSUkGqqmw0bGnaKK2/PyXBlZhnEDzReM3aUbApJn3xitfrJEhnRvOJhzog/og==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0" + "@toruslabs/constants": "^14.2.0" }, "engines": { "node": ">=18.x", @@ -1537,12 +1201,34 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/secure-pub-sub": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", + "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", + "license": "MIT", + "dependencies": { + "@toruslabs/constants": "^14.1.1", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "socket.io-client": "^4.7.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", + "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", "license": "MIT", "dependencies": { + "@toruslabs/constants": "^14.1.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0" @@ -1552,21 +1238,21 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "@rollup/rollup-linux-x64-gnu": "^4.24.4" } }, "node_modules/@toruslabs/starkware-crypto": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.0.tgz", - "integrity": "sha512-oEvcwEulCkLbOfRq3Rz3wS1DgSYV5oCh4N4YNWYDQhz1WoQe3S87hJlVUPvRQHHqhp9vBM0qDUVi0Ez7ibYhMA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.1.tgz", + "integrity": "sha512-AhnXUscFN2+oLeQuOEbi8vvrQnxUKnE0USWpg7eFHmqUBV8kg6+PAFiWsvJ01+GMQPTMKhKZHyMysxW5AFHc6Q==", "license": "MIT", "dependencies": { "assert": "^2.1.0", "bip39": "^3.1.0", "bn.js": "^5.2.1", - "elliptic": "~6.5.5", + "elliptic": "^6.6.1", "enc-utils": "^3.0.0", - "ethereum-cryptography": "^2.2.0", + "ethereum-cryptography": "^2.2.1", "hash.js": "^1.1.7" }, "engines": { @@ -1578,9 +1264,9 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.0.tgz", - "integrity": "sha512-ZVQzeRl8qXbaw6jVUvPjNnuY6fJjxX4k8NoNfdp+8F2Og1rBiINnASMfRVeDajc4Bg+rfbsX5HZ+T0S+F6lv1A==", + "version": "15.2.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.2.0-alpha.0.tgz", + "integrity": "sha512-W0HXmffYTbA9pFC3gdj6ON+FsmzJlSksT6hW5mDkRLZp1qSprYppjHnnnelq5n46yOs+290En8LP5s/U5viluw==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -1588,10 +1274,10 @@ "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "bn.js": "^5.2.1", - "elliptic": "^6.5.6", + "elliptic": "^6.5.7", "ethereum-cryptography": "^2.2.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -1602,14 +1288,19 @@ } }, "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==" + "version": "5.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", + "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==" }, "node_modules/@toruslabs/tss-frost-lib": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", - "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==" + "version": "2.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", + "integrity": "sha512-oZy99HiES3OR8t6rrV6ccxwbrq38kxzz1C/5UIdqUVd2IRSWZzrcD+J4Q2/yR5bDMoK1HrucLShK96uMoXyv/A==" + }, + "node_modules/@toruslabs/tss-frost-lib-bip340": { + "version": "0.1.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib-bip340/-/tss-frost-lib-bip340-0.1.0-alpha.0.tgz", + "integrity": "sha512-2dK/fhIfkxdbI/WPCRc1nJlL81nu70VMJyj313eJbO6oU13S92YjzoIhiCvBn6G/F3XpftD44wqNkr+S3QbAuA==" }, "node_modules/@toruslabs/tweetnacl-js": { "version": "1.0.4", @@ -1689,6 +1380,30 @@ "@types/bn.js": "*" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1728,16 +1443,16 @@ "license": "MIT" }, "node_modules/@types/jsrsasign": { - "version": "10.5.14", - "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.14.tgz", - "integrity": "sha512-lppSlfK6etu+cuKs40K4rg8As79PH6hzIB+v55zSqImbSH3SE6Fm8MBHCiI91cWlAP3Z4igtJK1VL3fSN09blQ==", + "version": "10.5.15", + "resolved": "https://registry.npmjs.org/@types/jsrsasign/-/jsrsasign-10.5.15.tgz", + "integrity": "sha512-3stUTaSRtN09PPzVWR6aySD9gNnuymz+WviNHoTb85dKu+BjaV4uBbWWGykBBJkfwPtcNZVfTn2lbX00U+yhpQ==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "18.19.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.55.tgz", - "integrity": "sha512-zzw5Vw52205Zr/nmErSEkN5FLqXPuKX/k5d1D7RKHATGqU7y6YfX9QxZraUzUrFGqH6XzOzG196BC35ltJC4Cw==", + "version": "18.19.67", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.67.tgz", + "integrity": "sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==", "license": "MIT", "dependencies": { "undici-types": "~5.26.4" @@ -1751,9 +1466,9 @@ "license": "MIT" }, "node_modules/@types/react": { - "version": "18.3.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.11.tgz", - "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", "dev": true, "license": "MIT", "dependencies": { @@ -1762,9 +1477,9 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.0", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.0.tgz", - "integrity": "sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1781,14 +1496,14 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.2.tgz", - "integrity": "sha512-hieu+o05v4glEBucTcKMK3dlES0OeJlD9YVOAPraVMOInBCwzumaIFiUjr4bHK7NPgnAHgiskUoceKercrN8vg==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", "license": "MIT", "dependencies": { - "@babel/core": "^7.25.2", - "@babel/plugin-transform-react-jsx-self": "^7.24.7", - "@babel/plugin-transform-react-jsx-source": "^7.24.7", + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", "@types/babel__core": "^7.20.5", "react-refresh": "^0.14.2" }, @@ -1796,22 +1511,22 @@ "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.2.0 || ^5.0.0" + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" } }, "node_modules/@web3auth/auth": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.4.1.tgz", - "integrity": "sha512-V5JNBc7VeHDmP+9VN4obAIav/NbkyZXEVJ3rD9C4SdbO/ZF3Hc+G8SdVPymJlR2JrBCsuPJiFsUatBl1hx+FSg==", + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", + "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.2.0", "@toruslabs/ffjavascript": "^4.0.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/secure-pub-sub": "^1.0.0", - "@toruslabs/session-manager": "^3.0.0", - "@toruslabs/starkware-crypto": "^4.0.0", + "@toruslabs/secure-pub-sub": "^1.1.0", + "@toruslabs/session-manager": "^3.2.0", + "@toruslabs/starkware-crypto": "^4.0.1", "@toruslabs/tweetnacl-js": "^1.0.4", "base64url": "^3.0.1", "bip39": "^3.1.0", @@ -1823,9 +1538,9 @@ "events": "^3.3.0", "fast-safe-stringify": "^2.1.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1", + "loglevel": "^1.9.2", "once": "^1.4.0", - "pump": "^3.0.0", + "pump": "^3.0.2", "readable-stream": "^4.5.2", "ts-custom-error": "^3.3.1", "typed-emitter": "^2.1.0" @@ -1835,42 +1550,23 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^19.6.3", - "@rollup/rollup-linux-x64-gnu": "^4.21.1" - }, - "peerDependencies": { - "@babel/runtime": "7.x" - } - }, - "node_modules/@web3auth/auth/node_modules/@toruslabs/secure-pub-sub": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.0.0.tgz", - "integrity": "sha512-Xv8SExIJ4/DBw5QHcSN+EGPMddZ2du4NcI9jztLde1K/0Hfnurqw6CcAniU6zpKVRVCRwjiauYCNYIRPBi2M4g==", - "license": "MIT", - "dependencies": { - "@toruslabs/eccrypto": "^5.0.0", - "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0", - "loglevel": "^1.9.1", - "socket.io-client": "^4.7.5" - }, - "engines": { - "node": ">=18.x", - "npm": ">=9.x" + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" }, "peerDependencies": { "@babel/runtime": "7.x" } }, "node_modules/@web3auth/base": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.3.0.tgz", - "integrity": "sha512-S1X3i83T7HWr+pF+qBG6nAh49bhE/91LzQxQqSTMQ3f0NGdaMWtuQK3QewyO+G71+9+yrhIS0vggnXyAgY9NaA==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.5.tgz", + "integrity": "sha512-ETyrRnsJIV9Xab9lkUL6EUVP1FKzal49yDFrZIOv1mtZhafhXNcmo5aOxLXF/LbUCDs37CereqQovujGUWzZXQ==", + "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.2.2", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/base-controllers": "^6.3.2", + "@toruslabs/constants": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.4.1", + "@web3auth/auth": "^9.5.3", "jwt-decode": "^4.0.0", "loglevel": "^1.9.2", "ts-custom-error": "^3.3.1" @@ -1884,13 +1580,14 @@ } }, "node_modules/@web3auth/base-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.3.0.tgz", - "integrity": "sha512-WiBpeVvyzmrjLQ8XNZMTWdtukDivuEvX8nOwT5FjyWBow5f06GViDRIRhB1D/M8n3xtsID8O/7qb8Gr6lw48zw==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.5.tgz", + "integrity": "sha512-Q+1HnG0bQFOHNhiw0BnuRLKpOh3O/iicl1kp4K8TtUOQC/4JTsY0odehQ1phBOr1IxROTjmDl/QW3coST3CSVA==", + "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.2.2", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", + "@toruslabs/base-controllers": "^6.3.2", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.5", "json-rpc-random-id": "^1.0.1" }, "engines": { @@ -1902,16 +1599,17 @@ } }, "node_modules/@web3auth/ethereum-mpc-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.3.0.tgz", - "integrity": "sha512-QshYFjPcXUzIkVMSWKy2LRhMDSTvjV4AED4cnYIm3QibXVYvvUfwRO4eUixZ5uSqn8/0EPhLsiBCpaNw3sAghA==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-mpc-provider/-/ethereum-mpc-provider-9.4.5.tgz", + "integrity": "sha512-2MoIt87RaW5DCmQEi/53yjIr+geWTSX0jCYJ9ELBMDT858gNV3du3rz4F3E8UMZGmLpD4PIgQOu4kMpiUpnDOQ==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.2.2", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", - "@web3auth/base-provider": "^9.3.0", - "@web3auth/ethereum-provider": "^9.3.0", + "@toruslabs/base-controllers": "^6.3.2", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.5", + "@web3auth/base-provider": "^9.4.5", + "@web3auth/ethereum-provider": "^9.4.5", "ethers": "^6.13.4" }, "engines": { @@ -1923,17 +1621,18 @@ } }, "node_modules/@web3auth/ethereum-provider": { - "version": "9.3.0", - "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.3.0.tgz", - "integrity": "sha512-Qe9PAupSJqJEgkSruyusMB0Pu2mVw3JiieaRF4ixTrBnX1V2+wLdYLmQSYl+KBJ3m7ZsQO+omzFaDdZLyFPkew==", + "version": "9.4.5", + "resolved": "https://registry.npmjs.org/@web3auth/ethereum-provider/-/ethereum-provider-9.4.5.tgz", + "integrity": "sha512-5oZKvZKtmTvInre4Z5flup3gG4vFDXf4PMf9/3ZZ/PBOUhDezW9T4/1K194IQ9QuyFHCZGBBJ5cDliBp6vonpA==", + "license": "ISC", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/base-controllers": "^6.2.2", + "@toruslabs/base-controllers": "^6.3.2", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.4.1", - "@web3auth/base": "^9.3.0", - "@web3auth/base-provider": "^9.3.0", + "@web3auth/auth": "^9.5.3", + "@web3auth/base": "^9.4.5", + "@web3auth/base-provider": "^9.4.5", "assert": "^2.1.0", "bignumber.js": "^9.1.2", "bn.js": "^5.2.1", @@ -1952,81 +1651,108 @@ "resolved": "../..", "link": true }, + "node_modules/@web3auth/mpc-passkey-plugin": { + "version": "0.1.15-alpha.0", + "resolved": "https://registry.npmjs.org/@web3auth/mpc-passkey-plugin/-/mpc-passkey-plugin-0.1.15-alpha.0.tgz", + "integrity": "sha512-gmUCFD3XQScpG+PXT6I7ZUBG0Y/UwMKdJgx9bCVBBQ79lJWQfkPhQ377xamvKcXLbJd629de2lKM+JwRb3t0Bw==", + "license": "ISC", + "dependencies": { + "@simplewebauthn/browser": "^11.0.0", + "@simplewebauthn/types": "^11.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/fetch-node-details": "^14.0.1", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@web3auth/auth": "^9.4.1", + "base64url": "^3.0.1", + "bowser": "^2.11.0", + "cbor-x": "^1.6.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@web3auth/mpc-core-kit": "~4.1.6-alpha.0" + } + }, "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "license": "MIT", "peer": true, @@ -2035,9 +1761,9 @@ } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "license": "Apache-2.0", "peer": true, @@ -2046,85 +1772,85 @@ } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true, "license": "MIT", "peer": true }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -2172,9 +1898,9 @@ } }, "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "devOptional": true, "license": "MIT", "bin": { @@ -2184,33 +1910,24 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/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==" + "integrity": "sha512-G965FqalsNyrPqgEGON7nIx1e/OVENSgiEIzyC63haUMuvNnwIgIjMs52hlTCKhkBny7A2ORNlfY9Zu+jmGk1Q==", + "license": "MIT" }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" }, "funding": { "type": "github", @@ -2235,17 +1952,39 @@ } } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "license": "MIT", + "peer": true, "peerDependencies": { - "ajv": "^8.8.2" + "ajv": "^6.9.1" } }, "node_modules/ansi-regex": { @@ -2258,15 +1997,18 @@ } }, "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/asn1.js": { @@ -2282,9 +2024,9 @@ } }, "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -2545,9 +2287,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -2564,10 +2306,10 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2658,9 +2400,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001667", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001667.tgz", - "integrity": "sha512-7LTwJjcRkzKFmtqGsibMeuXmvFDfZq/nzIjnmgCGzKKRVzjD72selLDK1oPF/Oxzmt4fNcPvTDvGqSDG4tCALw==", + "version": "1.0.30001685", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001685.tgz", + "integrity": "sha512-e/kJN1EMyHQzgcMEEgoo+YTCO1NGCmIYHk5Qk8jT6AazWemS5QFKJ5ShCJlH3GZrNIdZofcNCEwZqbMjjKzmnA==", "funding": [ { "type": "opencollective", @@ -2677,18 +2419,51 @@ ], "license": "CC-BY-4.0" }, + "node_modules/cbor-extract": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cbor-extract/-/cbor-extract-2.2.0.tgz", + "integrity": "sha512-Ig1zM66BjLfTXpNgKpvBePq271BPOvu8MR0Jl080yG7Jsl+wAZunfrwiwA+9ruzm/WEdIV5QF/bjDZTqyAIVHA==", + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.1.1" + }, + "bin": { + "download-cbor-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0", + "@cbor-extract/cbor-extract-darwin-x64": "2.2.0", + "@cbor-extract/cbor-extract-linux-arm": "2.2.0", + "@cbor-extract/cbor-extract-linux-arm64": "2.2.0", + "@cbor-extract/cbor-extract-linux-x64": "2.2.0", + "@cbor-extract/cbor-extract-win32-x64": "2.2.0" + } + }, + "node_modules/cbor-x": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/cbor-x/-/cbor-x-1.6.0.tgz", + "integrity": "sha512-0kareyRwHSkL6ws5VXHEf8uY1liitysCVJjlmhaLG+IXLqhSaOO+t63coaso7yjwEzWZzLy8fJo06gZDVQM9Qg==", + "license": "MIT", + "optionalDependencies": { + "cbor-extract": "^2.2.0" + } + }, "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chrome-trace-event": { @@ -2703,14 +2478,17 @@ } }, "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.6.tgz", + "integrity": "sha512-3Ek9H3X6pj5TgenXYtNWdaBon1tgYCaebd+XPg0keyjEbEfkD4KkmAxkQ/i1vYvxdcT5nscLBfq9VJRmCBcFSw==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">= 0.10" } }, "node_modules/clean-css": { @@ -2740,18 +2518,21 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, "node_modules/color-string": { @@ -2764,24 +2545,6 @@ "simple-swizzle": "^0.2.2" } }, - "node_modules/color/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, "node_modules/commander": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", @@ -2804,23 +2567,70 @@ "integrity": "sha512-SNwdBeHyII+rWvee/bTnAYyO8vfVdcSTud4EIb6jcZ8inLeWucJE0DnxXQBjlQ5zlteuuvooGQy3LIyGxhvlOA==", "dev": true, "license": "MIT", - "dependencies": { - "fast-glob": "^3.3.2", - "glob-parent": "^6.0.1", - "globby": "^14.0.0", - "normalize-path": "^3.0.0", - "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2" - }, + "dependencies": { + "fast-glob": "^3.3.2", + "glob-parent": "^6.0.1", + "globby": "^14.0.0", + "normalize-path": "^3.0.0", + "schema-utils": "^4.2.0", + "serialize-javascript": "^6.0.2" + }, + "engines": { + "node": ">= 18.12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", + "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/merge-streams": "^2.1.0", + "fast-glob": "^3.3.2", + "ignore": "^5.2.4", + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 18.12.0" + "node": ">=14.16" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/core-util-is": { @@ -2854,9 +2664,9 @@ } }, "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -2899,26 +2709,30 @@ } }, "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.1.tgz", + "integrity": "sha512-r4ESw/IlusD17lgQi1O20Fa3qNnsckR126TdUuBgAu7GBYSIPvdNyONd3Zrxh0xCwA4+6w/TDArBPsMvhur+KQ==", "dev": true, "license": "MIT", "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" + "browserify-cipher": "^1.0.1", + "browserify-sign": "^4.2.3", + "create-ecdh": "^4.0.4", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "diffie-hellman": "^5.0.3", + "hash-base": "~3.0.4", + "inherits": "^2.0.4", + "pbkdf2": "^3.1.2", + "public-encrypt": "^4.0.3", + "randombytes": "^2.1.0", + "randomfill": "^1.0.4" }, "engines": { - "node": "*" + "node": ">= 0.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/css-select": { @@ -3029,6 +2843,16 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/diff-sequences": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz", @@ -3051,9 +2875,9 @@ } }, "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -3147,15 +2971,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.33", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", - "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==", + "version": "1.5.67", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.67.tgz", + "integrity": "sha512-nz88NNBsD7kQSAGGJyp8hS6xSPtWwqNogA0mjtc2nUYeEf3nURK9qpV18TuBdDmEDgVWotS8Wkzf+V52dSQ/LQ==", "license": "ISC" }, "node_modules/elliptic": { - "version": "6.5.7", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.7.tgz", - "integrity": "sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -3168,9 +2992,9 @@ } }, "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "license": "MIT" }, "node_modules/enc-utils": { @@ -3193,9 +3017,9 @@ } }, "node_modules/engine.io-client": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", - "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -3269,9 +3093,9 @@ "peer": true }, "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.0.tgz", + "integrity": "sha512-FuLPevChGDshgSicjisSooU0cemp/sGXR841D5LHMB7mTVOmsEHcAxaH3irL53+8YDIeVNQEySh4DaYU/iuPqQ==", "hasInstallScript": true, "license": "MIT", "peer": true, @@ -3279,32 +3103,33 @@ "esbuild": "bin/esbuild" }, "engines": { - "node": ">=12" + "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" + "@esbuild/aix-ppc64": "0.24.0", + "@esbuild/android-arm": "0.24.0", + "@esbuild/android-arm64": "0.24.0", + "@esbuild/android-x64": "0.24.0", + "@esbuild/darwin-arm64": "0.24.0", + "@esbuild/darwin-x64": "0.24.0", + "@esbuild/freebsd-arm64": "0.24.0", + "@esbuild/freebsd-x64": "0.24.0", + "@esbuild/linux-arm": "0.24.0", + "@esbuild/linux-arm64": "0.24.0", + "@esbuild/linux-ia32": "0.24.0", + "@esbuild/linux-loong64": "0.24.0", + "@esbuild/linux-mips64el": "0.24.0", + "@esbuild/linux-ppc64": "0.24.0", + "@esbuild/linux-riscv64": "0.24.0", + "@esbuild/linux-s390x": "0.24.0", + "@esbuild/linux-x64": "0.24.0", + "@esbuild/netbsd-x64": "0.24.0", + "@esbuild/openbsd-arm64": "0.24.0", + "@esbuild/openbsd-x64": "0.24.0", + "@esbuild/sunos-x64": "0.24.0", + "@esbuild/win32-arm64": "0.24.0", + "@esbuild/win32-ia32": "0.24.0", + "@esbuild/win32-x64": "0.24.0" } }, "node_modules/escalade": { @@ -3316,30 +3141,6 @@ "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3354,7 +3155,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -3365,17 +3166,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "license": "BSD-2-Clause", - "peer": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/ethereum-cryptography": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz", @@ -3414,6 +3204,7 @@ "url": "https://www.buymeacoffee.com/ricmoo" } ], + "license": "MIT", "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -3431,6 +3222,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.2.0.tgz", "integrity": "sha512-oYclrNgRaM9SsBUBVbb8M6DTV7ZHRTKugureoYEncY5c65HOmRzvSiTE3y5CYaPYJA/GVkrhXEoF0M3Ya9PMnw==", + "license": "MIT", "dependencies": { "@noble/hashes": "1.3.2" }, @@ -3442,6 +3234,7 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.2.tgz", "integrity": "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==", + "license": "MIT", "engines": { "node": ">= 16" }, @@ -3453,14 +3246,22 @@ "version": "22.7.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.5.tgz", "integrity": "sha512-jML7s2NAzMWc//QSJ1a3prpk78cOPchGvXJsC3C6R6PSMoooztvRVQEz89gmBTBY1SPMaqo5teB4uNHPdetShQ==", + "license": "MIT", "dependencies": { "undici-types": "~6.19.2" } }, + "node_modules/ethers/node_modules/tslib": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "license": "0BSD" + }, "node_modules/ethers/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==" + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" }, "node_modules/event-target-shim": { "version": "5.0.1", @@ -3549,11 +3350,11 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.2.tgz", - "integrity": "sha512-GR6f0hD7XXyNJa25Tb9BuIdN0tdr+0BMi6/CJPH3wJO1JjNG3n/VsSw38AwRdKZABm8lGbPfakLRkYzx2V9row==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.3.tgz", + "integrity": "sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/fastq": { "version": "1.17.1", @@ -3669,34 +3470,16 @@ "node": ">=4" } }, - "node_modules/globby": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.2.tgz", - "integrity": "sha512-s3Fq41ZVh7vbbe2PN3nrW7yC7U7MFVc5c98/iTl9c2GawNMKx/J648KQRW6WKkuU8GIbbh2IXfIRQjOZnXcTnw==", - "dev": true, + "node_modules/gopd": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.1.0.tgz", + "integrity": "sha512-FQoVQnqcdk4hVM4JN1eromaun4iuS34oStkdlLENLdpULsuQcTyXj8w7ayhuUfPwEYZ1ZOooOTT6fdA9Vmx/RA==", "license": "MIT", "dependencies": { - "@sindresorhus/merge-streams": "^2.1.0", - "fast-glob": "^3.3.2", - "ignore": "^5.2.4", - "path-type": "^5.0.0", - "slash": "^5.1.0", - "unicorn-magic": "^0.1.0" + "get-intrinsic": "^1.2.4" }, "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3711,12 +3494,12 @@ "peer": true }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/has-property-descriptors": { @@ -3732,10 +3515,13 @@ } }, "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==", "license": "MIT", + "dependencies": { + "call-bind": "^1.0.7" + }, "engines": { "node": ">= 0.4" }, @@ -3771,17 +3557,17 @@ } }, "node_modules/hash-base": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", - "integrity": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.5.tgz", + "integrity": "sha512-vXm0l45VbcHEVlTCzs8M+s0VeYsB2lnlAaThoLKGXr3bE/VWDOelNUnycUPEhKEaXARL2TEFjBOyUiM6+55KBg==", "dev": true, "license": "MIT", "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "inherits": "^2.0.4", + "safe-buffer": "^5.2.1" }, "engines": { - "node": ">=4" + "node": ">= 0.10" } }, "node_modules/hash.js": { @@ -3850,9 +3636,9 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.0.tgz", - "integrity": "sha512-iwaY4wzbe48AfKLZ/Cc8k0L+FKG6oSNRaZ8x5A/T/IVDGyXcbHncM9TdDa93wn0FsSm82FhTKW7f3vS61thXAw==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.6.3.tgz", + "integrity": "sha512-QSf1yjtSAsmf7rYBV7XX86uua4W/vkhIt0xNXKbsi2foEeW7vjJQz4bhnpL3xH+l1ryl1680uNv968Z+X6jSYg==", "dev": true, "license": "MIT", "dependencies": { @@ -4094,76 +3880,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-diff/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-diff/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/jest-diff/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-diff/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -4185,77 +3901,7 @@ "pretty-format": "^27.5.1" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/jest-worker": { @@ -4274,17 +3920,6 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=8" - } - }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -4331,14 +3966,16 @@ "node_modules/json-rpc-random-id": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-rpc-random-id/-/json-rpc-random-id-1.0.1.tgz", - "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==" + "integrity": "sha512-RJ9YYNCkhVDBuP4zN5BBtYAzEl03yq/jIIsyif0JY9qyJuQQZNeDK7anAPKKlyEtLSj2s8h6hNh2F8zO5q7ScA==", + "license": "ISC" }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-stable-stringify": { "version": "1.1.1", @@ -4383,6 +4020,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "license": "MIT", "engines": { "node": "*" } @@ -4620,9 +4258,9 @@ } }, "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -4670,9 +4308,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "funding": [ { "type": "github", @@ -4727,6 +4365,21 @@ } } }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, "node_modules/node-releases": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", @@ -4757,9 +4410,9 @@ } }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "dev": true, "license": "MIT", "engines": { @@ -4891,19 +4544,6 @@ "dev": true, "license": "MIT" }, - "node_modules/path-type": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", - "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/pbkdf2": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", @@ -4922,9 +4562,9 @@ } }, "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "license": "ISC" }, "node_modules/picomatch": { @@ -4950,9 +4590,9 @@ } }, "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "version": "8.4.49", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.49.tgz", + "integrity": "sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==", "funding": [ { "type": "opencollective", @@ -4971,7 +4611,7 @@ "peer": true, "dependencies": { "nanoid": "^3.3.7", - "picocolors": "^1.1.0", + "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, "engines": { @@ -5047,9 +4687,9 @@ } }, "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz", + "integrity": "sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==", "dev": true, "license": "MIT" }, @@ -5064,16 +4704,20 @@ } }, "node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true, + "engines": { + "node": ">=6" + } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.13.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.1.tgz", + "integrity": "sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -5247,9 +4891,9 @@ } }, "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", + "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", "license": "MIT", "peer": true, "dependencies": { @@ -5263,25 +4907,41 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", + "@rollup/rollup-android-arm-eabi": "4.28.0", + "@rollup/rollup-android-arm64": "4.28.0", + "@rollup/rollup-darwin-arm64": "4.28.0", + "@rollup/rollup-darwin-x64": "4.28.0", + "@rollup/rollup-freebsd-arm64": "4.28.0", + "@rollup/rollup-freebsd-x64": "4.28.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", + "@rollup/rollup-linux-arm-musleabihf": "4.28.0", + "@rollup/rollup-linux-arm64-gnu": "4.28.0", + "@rollup/rollup-linux-arm64-musl": "4.28.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", + "@rollup/rollup-linux-riscv64-gnu": "4.28.0", + "@rollup/rollup-linux-s390x-gnu": "4.28.0", + "@rollup/rollup-linux-x64-gnu": "4.28.0", + "@rollup/rollup-linux-x64-musl": "4.28.0", + "@rollup/rollup-win32-arm64-msvc": "4.28.0", + "@rollup/rollup-win32-ia32-msvc": "4.28.0", + "@rollup/rollup-win32-x64-msvc": "4.28.0", "fsevents": "~2.3.2" } }, + "node_modules/rollup/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", + "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "peer": true + }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5365,6 +5025,43 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true, + "license": "MIT" + }, "node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", @@ -5449,23 +5146,10 @@ "is-arrayish": "^0.3.1" } }, - "node_modules/slash": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", - "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/socket.io-client": { - "version": "4.8.0", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", - "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", @@ -5598,15 +5282,15 @@ } }, "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/tapable": { @@ -5620,9 +5304,9 @@ } }, "node_modules/terser": { - "version": "5.34.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.34.1.tgz", - "integrity": "sha512-FsJZ7iZLd/BXkz+4xrRTGJ26o/6VTjQytUk8b8OxkwcD2I+79VPJlz7qss1+zE7h8GNIScFqXcDyJ/KqBYZFVA==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", "devOptional": true, "license": "BSD-2-Clause", "dependencies": { @@ -5674,43 +5358,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "peer": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "license": "MIT", - "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -5738,15 +5385,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -5776,9 +5414,9 @@ } }, "node_modules/tslib": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.7.0.tgz", - "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", "license": "0BSD" }, "node_modules/typed-emitter": { @@ -5800,9 +5438,9 @@ } }, "node_modules/typescript": { - "version": "5.6.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", - "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", @@ -5881,17 +5519,6 @@ "punycode": "^2.1.0" } }, - "node_modules/uri-js/node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=6" - } - }, "node_modules/url": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/url/-/url-0.11.4.tgz", @@ -5906,6 +5533,13 @@ "node": ">= 0.4" } }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true, + "license": "MIT" + }, "node_modules/util": { "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", @@ -5934,21 +5568,21 @@ "license": "MIT" }, "node_modules/vite": { - "version": "5.4.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.8.tgz", - "integrity": "sha512-FqrItQ4DT1NC4zCUqMB4c4AZORMKIa0m8/URVCZ77OZ/QSNeJ54bU1vrFADbDsuwfIPcgknRkmqakQcgnL4GiQ==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.0.2.tgz", + "integrity": "sha512-XdQ+VsY2tJpBsKGs0wf3U/+azx8BBpYRHFAyKm5VeEZNOJZRB63q7Sc8Iup3k0TrN3KO6QgyzFf+opSbfY1y0g==", "license": "MIT", "peer": true, "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" + "esbuild": "^0.24.0", + "postcss": "^8.4.49", + "rollup": "^4.23.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^18.0.0 || >=20.0.0" + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" }, "funding": { "url": "https://github.com/vitejs/vite?sponsor=1" @@ -5957,19 +5591,25 @@ "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", - "terser": "^5.4.0" + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "jiti": { + "optional": true + }, "less": { "optional": true }, @@ -5990,6 +5630,12 @@ }, "terser": { "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true } } }, @@ -6009,17 +5655,17 @@ } }, "node_modules/web3": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-4.13.0.tgz", - "integrity": "sha512-wRXTu/YjelvBJ7PSLzp/rW8/6pqj4RlXzdKSkjk01RaHDvnpLogLU/VL8OF5ygqhY7IzhY5MSrl9SnC8C9Z4uA==", + "version": "4.15.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-4.15.0.tgz", + "integrity": "sha512-0QWDWE4gDWldXb4KWq++K8m/A9zsR0LpJLtVT39/b4OjfdW0d4mE0qAUd3UocxuKTh1eG5pOCfumbGS5l6p1qg==", "license": "LGPL-3.0", "dependencies": { - "web3-core": "^4.6.0", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth": "^4.9.0", - "web3-eth-abi": "^4.2.4", - "web3-eth-accounts": "^4.2.1", - "web3-eth-contract": "^4.7.0", + "web3-eth": "^4.11.0", + "web3-eth-abi": "^4.4.0", + "web3-eth-accounts": "^4.3.0", + "web3-eth-contract": "^4.7.1", "web3-eth-ens": "^4.4.0", "web3-eth-iban": "^4.0.7", "web3-eth-personal": "^4.1.0", @@ -6027,9 +5673,9 @@ "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", - "web3-rpc-providers": "^1.0.0-rc.2", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-rpc-providers": "^1.0.0-rc.3", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6038,9 +5684,9 @@ } }, "node_modules/web3-core": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-4.6.0.tgz", - "integrity": "sha512-j8uQ/7zSwpmLClMMeZb736Ok3V4cWSd0dnd29jkd10d1pedi32r+hSAgycxSJLLWtPHOzMBIXUjj3TF/IAClVQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-4.7.0.tgz", + "integrity": "sha512-skP4P56fhlrE+rIuS4WY9fTdja1DPml2xrrDmv+vQhPtmSFBs7CqesycIRLQh4dK1D4de/a23tkX6DLYdUt3nA==", "license": "LGPL-3.0", "dependencies": { "web3-errors": "^1.3.0", @@ -6048,8 +5694,8 @@ "web3-eth-iban": "^4.0.7", "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.8.1", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6074,21 +5720,21 @@ } }, "node_modules/web3-eth": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.9.0.tgz", - "integrity": "sha512-lE+5rQUkQq1Mzf3uZ/tlay8nvMyC/CmaRFRFQ015OZuvSrRr/byZhhkzY5ZWkIetESTMqfWapu67yeHebcHxwA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-4.11.0.tgz", + "integrity": "sha512-nZIJ/8FOOj5aEXoS8p9puuX5jLyzewZv3nXqoKNtu531/vA/yIiU/EtPnAV62RvVMcbDSiF/BLVFdBZCsVMJbg==", "license": "LGPL-3.0", "dependencies": { "setimmediate": "^1.0.5", - "web3-core": "^4.6.0", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth-abi": "^4.2.4", - "web3-eth-accounts": "^4.2.1", + "web3-eth-abi": "^4.4.0", + "web3-eth-accounts": "^4.3.0", "web3-net": "^4.1.0", "web3-providers-ws": "^4.0.8", "web3-rpc-methods": "^1.3.0", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6097,15 +5743,15 @@ } }, "node_modules/web3-eth-abi": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.2.4.tgz", - "integrity": "sha512-FGoj/ENm/Iq3+6myJyiDCwbFkha9ZCx2fRdiIdw3mp7S4lgu+ay3EVzQPRxJjNBm09UEfxB9yoSAPKj9Z3Mbxg==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-4.4.0.tgz", + "integrity": "sha512-RQzt9W93OgFBwOdNGcc9ulCyYt4zmRAMkKGbEdp3wcN4vmwTlRhh21+akj2ND4bg3C3RUiP4yprYgDEyN0/Fmg==", "license": "LGPL-3.0", "dependencies": { "abitype": "0.7.1", "web3-errors": "^1.3.0", - "web3-types": "^1.8.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6114,17 +5760,17 @@ } }, "node_modules/web3-eth-accounts": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.2.1.tgz", - "integrity": "sha512-aOlEZFzqAgKprKs7+DGArU4r9b+ILBjThpeq42aY7LAQcP+mSpsWcQgbIRK3r/n3OwTYZ3aLPk0Ih70O/LwnYA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-4.3.0.tgz", + "integrity": "sha512-7UX3rJiNgHYoqrO1WRPks/9J5Mh2x5N9HAd9QsOM8zfKY2rwSyCIIQM03OFXDEQRZ/ztycKTHgeLStmhlUUKIQ==", "license": "LGPL-3.0", "dependencies": { "@ethereumjs/rlp": "^4.0.1", "crc-32": "^1.2.2", "ethereum-cryptography": "^2.0.0", "web3-errors": "^1.3.0", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6145,18 +5791,18 @@ } }, "node_modules/web3-eth-contract": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.7.0.tgz", - "integrity": "sha512-fdStoBOjFyMHwlyJmSUt/BTDL1ATwKGmG3zDXQ/zTKlkkW/F/074ut0Vry4GuwSBg9acMHc0ycOiZx9ZKjNHsw==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-4.7.1.tgz", + "integrity": "sha512-D9nHCclq4lj2CX1sOrGga1UFA9CNBWZV6NGwNr6WjbBGIFl9ui2mivE9c3vNGEfSMnvKEq/zE83N+eGOwcWZlg==", "license": "LGPL-3.0", "dependencies": { "@ethereumjs/rlp": "^5.0.2", - "web3-core": "^4.5.1", + "web3-core": "^4.7.0", "web3-errors": "^1.3.0", - "web3-eth": "^4.8.2", - "web3-eth-abi": "^4.2.3", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-eth": "^4.11.0", + "web3-eth-abi": "^4.4.0", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6301,16 +5947,16 @@ } }, "node_modules/web3-rpc-providers": { - "version": "1.0.0-rc.2", - "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.2.tgz", - "integrity": "sha512-ocFIEXcBx/DYQ90HhVepTBUVnL9pGsZw8wyPb1ZINSenwYus9SvcFkjU1Hfvd/fXjuhAv2bUVch9vxvMx1mXAQ==", + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/web3-rpc-providers/-/web3-rpc-providers-1.0.0-rc.3.tgz", + "integrity": "sha512-aeFPYgvHjsf2yQi3CSQA9Ie4xnmO7VmNkY098rA7AWvhgyjVgIWlrVgZjUn55FXtthbiiTRm/CLriv99UeOfGQ==", "license": "LGPL-3.0", "dependencies": { "web3-errors": "^1.3.0", "web3-providers-http": "^4.2.0", "web3-providers-ws": "^4.0.8", - "web3-types": "^1.7.0", - "web3-utils": "^4.3.1", + "web3-types": "^1.9.0", + "web3-utils": "^4.3.2", "web3-validator": "^2.0.6" }, "engines": { @@ -6319,9 +5965,9 @@ } }, "node_modules/web3-types": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.8.0.tgz", - "integrity": "sha512-Z51wFLPGhZM/1uDxrxE8gzju3t2aEdRGn+YmLX463id5UjTuMEmP/9in1GFjqrsPB3m86czs8RnGBUt3ovueMw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/web3-types/-/web3-types-1.9.0.tgz", + "integrity": "sha512-I520KBPoXqEaM/ybj6xHD1E3gRb8/WdudLQaRBvJNQSSfHuPW9P2sD59mbhm6dsKtnje+T90dIxSyzVVFlEdlg==", "license": "LGPL-3.0", "engines": { "node": ">=14", @@ -6329,15 +5975,15 @@ } }, "node_modules/web3-utils": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.1.tgz", - "integrity": "sha512-kGwOk8FxOLJ9DQC68yqNQc7AzN+k9YDLaW+ZjlAXs3qORhf8zXk5SxWAAGLbLykMs3vTeB0FTb1Exut4JEYfFA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-4.3.2.tgz", + "integrity": "sha512-bEFpYEBMf6ER78Uvj2mdsCbaLGLK9kABOsa3TtXOEEhuaMy/RK0KlRkKoZ2vmf/p3hB8e1q5erknZ6Hy7AVp7A==", "license": "LGPL-3.0", "dependencies": { "ethereum-cryptography": "^2.0.0", "eventemitter3": "^5.0.1", - "web3-errors": "^1.2.0", - "web3-types": "^1.7.0", + "web3-errors": "^1.3.0", + "web3-types": "^1.8.1", "web3-validator": "^2.0.6" }, "engines": { @@ -6369,20 +6015,20 @@ "license": "BSD-2-Clause" }, "node_modules/webpack": { - "version": "5.95.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.95.0.tgz", - "integrity": "sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", @@ -6427,43 +6073,32 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "peer": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" + "engines": { + "node": ">=8.0.0" } }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true, - "license": "MIT", + "license": "BSD-2-Clause", "peer": true, - "peerDependencies": { - "ajv": "^6.9.1" + "engines": { + "node": ">=4.0" } }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT", - "peer": true - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -6495,9 +6130,9 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", - "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "version": "1.1.16", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", + "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", @@ -6541,9 +6176,9 @@ } }, "node_modules/xmlhttprequest-ssl": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", - "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } diff --git a/demo/redirect-flow-example/package.json b/demo/redirect-flow-example/package.json index 26ca6465..098bf77b 100644 --- a/demo/redirect-flow-example/package.json +++ b/demo/redirect-flow-example/package.json @@ -4,8 +4,10 @@ "private": true, "dependencies": { "@tkey/common-types": "^15.1.0", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0", "@types/jest": "^27.5.2", "@types/node": "^16.18.48", "@types/react": "^18.3.11", @@ -14,6 +16,7 @@ "@web3auth/base": "^9.0.2", "@web3auth/ethereum-mpc-provider": "^9.3.0", "@web3auth/mpc-core-kit": "file:../..", + "@web3auth/mpc-passkey-plugin": "0.1.15-alpha.0", "browserify-zlib": "^0.2.0", "copy-webpack-plugin": "^11.0.0", "html-webpack-plugin": "^5.5.3", @@ -50,6 +53,9 @@ "react-app/jest" ] }, + "overrides": { + "@toruslabs/torus.js": "15.2.0-alpha.0" + }, "devDependencies": { "@types/eccrypto": "^1.1.6", "@types/elliptic": "^6.4.18", diff --git a/demo/redirect-flow-example/src/App.css b/demo/redirect-flow-example/src/App.css index 8f38bacd..4bcda14f 100644 --- a/demo/redirect-flow-example/src/App.css +++ b/demo/redirect-flow-example/src/App.css @@ -122,4 +122,4 @@ .flex-column { display: flex; flex-direction: column; -} \ No newline at end of file +} diff --git a/demo/redirect-flow-example/src/App.test.tsx b/demo/redirect-flow-example/src/App.test.tsx index 2a68616d..6eebec4a 100644 --- a/demo/redirect-flow-example/src/App.test.tsx +++ b/demo/redirect-flow-example/src/App.test.tsx @@ -1,9 +1,9 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; +// import { render, screen } from '@testing-library/react'; +// import App from './App'; -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); +// test('renders learn react link', () => { +// render(); +// const linkElement = screen.getByText(/learn react/i); +// expect(linkElement).toBeInTheDocument(); +// }); diff --git a/demo/redirect-flow-example/src/App.tsx b/demo/redirect-flow-example/src/App.tsx index 73364482..e6a6fb11 100644 --- a/demo/redirect-flow-example/src/App.tsx +++ b/demo/redirect-flow-example/src/App.tsx @@ -12,18 +12,27 @@ import { parseToken, factorKeyCurve, makeEthereumSigner, + SIG_TYPE, } from "@web3auth/mpc-core-kit"; +import { PasskeysPlugin, shouldSupportPasskey } from "@web3auth/mpc-passkey-plugin"; import Web3 from "web3"; import { CHAIN_NAMESPACES, CustomChainConfig, IProvider } from "@web3auth/base"; import { EthereumSigningProvider } from "@web3auth/ethereum-mpc-provider"; import { BN } from "bn.js"; import { KeyType, Point } from "@tkey/common-types"; -import { tssLib } from "@toruslabs/tss-dkls-lib"; -// import{ tssLib } from "@toruslabs/tss-frost-lib"; +import { tssLib as tssLibDkls } from "@toruslabs/tss-dkls-lib"; +import{ tssLib as tssLibFrost } from "@toruslabs/tss-frost-lib"; +import{ tssLib as tssLibFrostBip340 } from "@toruslabs/tss-frost-lib-bip340"; + + + import "./App.css"; import jwt, { Algorithm } from "jsonwebtoken"; import { flow } from "./flow"; +import { ec as EC } from "elliptic"; + +type TssLib = typeof tssLibDkls | typeof tssLibFrost | typeof tssLibFrostBip340; const uiConsole = (...args: any[]): void => { const el = document.querySelector("#console>p"); @@ -46,16 +55,6 @@ const DEFAULT_CHAIN_CONFIG: CustomChainConfig = { decimals: 18, }; -const coreKitInstance = new Web3AuthMPCCoreKit({ - web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", - web3AuthNetwork: selectedNetwork, - uxMode: "redirect", - manualSync: true, - storage: window.localStorage, - // sessionTime: 3600, // <== can provide variable session time based on user subscribed plan - tssLib, - useDKG: false, -}); const privateKey = "MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCCD7oLrcKae+jVZPGx52Cb/lKhdKxpXjl9eGNa1MlY57A=="; const jwtPrivateKey = `-----BEGIN PRIVATE KEY-----\n${privateKey}\n-----END PRIVATE KEY-----`; @@ -97,57 +96,96 @@ function App() { const [question, setQuestion] = useState(undefined); const [newQuestion, setNewQuestion] = useState(undefined); const securityQuestion = useMemo(() => new TssSecurityQuestion(), []); - + const [selectedTssLib, setSelectedTssLib] = useState(tssLibDkls); + const coreKitInstance = useRef( + new Web3AuthMPCCoreKit({ + web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: selectedNetwork, + uxMode: "redirect", + manualSync: true, + storage: window.localStorage, + tssLib: selectedTssLib, + useDKG: false, + }) + ); + const passkeyPlugin = useRef( + undefined + // new PasskeysPlugin( + // coreKitInstance.getContext(), + // { + // baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" + // } + // ) + ) async function setupProvider(chainConfig?: CustomChainConfig) { - if (coreKitInstance.keyType !== KeyType.secp256k1) { + if (coreKitInstance.current.keyType !== KeyType.secp256k1) { console.warn(`Ethereum requires keytype ${KeyType.secp256k1}, skipping provider setup`); return; } let localProvider = new EthereumSigningProvider({ config: { chainConfig: chainConfig || DEFAULT_CHAIN_CONFIG } }); - localProvider.setupProvider(makeEthereumSigner(coreKitInstance)); + localProvider.setupProvider(makeEthereumSigner(coreKitInstance.current)); setProvider(localProvider); } // decide whether to rehydrate session const rehydrate = true; - const initialized = useRef(false); - useEffect(() => { - const init = async () => { - // Example config to handle redirect result manually - if (coreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { - await coreKitInstance.init({ handleRedirectResult: false, rehydrate }); - if (window.location.hash.includes("#state")) { - await coreKitInstance.handleRedirectResult(); - } - } - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { - await setupProvider(); + const init = async (newCoreKitInstance: Web3AuthMPCCoreKit) => { + coreKitInstance.current = newCoreKitInstance; + + // Example config to handle redirect result manually + if (newCoreKitInstance.status === COREKIT_STATUS.NOT_INITIALIZED) { + await newCoreKitInstance.init({ handleRedirectResult: false, rehydrate }); + const pkeyPlugin = new PasskeysPlugin( + newCoreKitInstance, + { + baseURL: "https://testing-mpc-passkeys.web3auth.io/api/v1" + }); + await pkeyPlugin.init(); + passkeyPlugin.current = pkeyPlugin; + if (window.location.hash.includes("#state")) { + await newCoreKitInstance.handleRedirectResult(); } + } + if (newCoreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + await setupProvider(); + } - if (coreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { - uiConsole( - "required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]" - ); - } + if (newCoreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { + uiConsole( + "required more shares, please enter your backup/ device factor key, or reset account unrecoverable once reset, please use it with caution]" + ); + } - console.log("coreKitInstance.status", coreKitInstance.status); - setCoreKitStatus(coreKitInstance.status); + console.log("newCoreKitInstance.status", newCoreKitInstance.status); + setCoreKitStatus(newCoreKitInstance.status); - try { - let result = securityQuestion.getQuestion(coreKitInstance!); - setQuestion(result); - uiConsole("security question set"); - } catch (e) { - uiConsole("security question not set"); - } - }; - if (!initialized.current) + try { + let result = securityQuestion.getQuestion(newCoreKitInstance!); + setQuestion(result); + uiConsole("security question set"); + } catch (e) { + uiConsole("security question not set"); + } + }; + + useEffect(() => { + const instance = new Web3AuthMPCCoreKit({ + web3AuthClientId: "BPi5PB_UiIZ-cPz1GtV5i1I2iOSOHuimiXBI0e-Oe_u6X3oVAbCiAZOTEBtTXw4tsluTITPqA8zMsfxIKMjiqNQ", + web3AuthNetwork: selectedNetwork, + uxMode: "redirect", + manualSync: false, + storage: window.localStorage, + tssLib: selectedTssLib, + useDKG: false, + }) + + + if (instance.status === COREKIT_STATUS.NOT_INITIALIZED) { - init(); - initialized.current = true; + init(instance); } - }, []); + }, [selectedTssLib]); useEffect(() => { if (provider) { @@ -160,18 +198,18 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - uiConsole(coreKitInstance.getKeyDetails()); + uiConsole(coreKitInstance.current.getKeyDetails()); }; const listFactors = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - const factorPubs = coreKitInstance.tKey.metadata.factorPubs; + const factorPubs = coreKitInstance.current.tKey.metadata.factorPubs; if (!factorPubs) { throw new Error("factorPubs not found"); } - const pubsHex = factorPubs[coreKitInstance.tKey.tssTag].map((pub: Point) => { + const pubsHex = factorPubs[coreKitInstance.current.tKey.tssTag].map(pub => { return pub.toSEC1(factorKeyCurve, true).toString("hex"); }); uiConsole(pubsHex); @@ -183,17 +221,18 @@ function App() { throw new Error("mockEmail not found"); } const { idToken, parsedToken } = await mockLogin(mockEmail); - await coreKitInstance.loginWithJWT({ + await coreKitInstance.current.loginWithJWT({ verifier: "torus-test-health", verifierId: parsedToken.email, idToken, prefetchTssPublicKeys: 1, }); - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); + await coreKitInstance.current.commitChanges(); } catch (error: unknown) { console.error(error); } @@ -232,15 +271,15 @@ function App() { }, } as SubVerifierDetailsParams; - await coreKitInstance.loginWithOAuth(verifierConfig); - setCoreKitStatus(coreKitInstance.status); + await coreKitInstance.current.loginWithOAuth(verifierConfig); + setCoreKitStatus(coreKitInstance.current.status); } catch (error: unknown) { console.error(error); } }; const getDeviceShare = async () => { - const factorKey = await coreKitInstance!.getDeviceFactor(); + const factorKey = await coreKitInstance.current.getDeviceFactor(); setBackupFactorKey(factorKey); uiConsole("Device share: ", factorKey); }; @@ -253,30 +292,30 @@ function App() { throw new Error("backupFactorKey not found"); } const factorKey = new BN(backupFactorKey, "hex"); - await coreKitInstance.inputFactorKey(factorKey); + await coreKitInstance.current.inputFactorKey(factorKey); - if (coreKitInstance.status === COREKIT_STATUS.REQUIRED_SHARE) { + if (coreKitInstance.current.status === COREKIT_STATUS.REQUIRED_SHARE) { uiConsole( "required more shares even after inputing backup factor key, please enter your backup/ device factor key, or reset account [unrecoverable once reset, please use it with caution]" ); } - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(); } - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); }; const recoverSecurityQuestionFactor = async () => { - if (!coreKitInstance) { + if (!coreKitInstance.current) { throw new Error("coreKitInstance not found"); } if (!answer) { throw new Error("backupFactorKey not found"); } - let factorKey = await securityQuestion.recoverFactor(coreKitInstance, answer); + let factorKey = await securityQuestion.recoverFactor(coreKitInstance.current, answer); setBackupFactorKey(factorKey); uiConsole("Security Question share: ", factorKey); }; @@ -285,14 +324,17 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance not found"); } - await coreKitInstance.logout(); + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin not found"); + } + await coreKitInstance.current.logout(); uiConsole("Log out"); setProvider(null); - setCoreKitStatus(coreKitInstance.status); + setCoreKitStatus(coreKitInstance.current.status); }; const getUserInfo = (): void => { - const user = coreKitInstance?.getUserInfo(); + const user = coreKitInstance?.current.getUserInfo(); uiConsole(user); }; @@ -302,7 +344,7 @@ function App() { } uiConsole("export share type: ", exportTssShareType); const factorKey = generateFactorKey(); - await coreKitInstance.createFactor({ + await coreKitInstance.current.createFactor({ shareType: exportTssShareType, factorKey: factorKey.private, }); @@ -320,7 +362,7 @@ function App() { } const pubBuffer = Buffer.from(factorPubToDelete, "hex"); const pub = Point.fromSEC1(factorKeyCurve, pubBuffer.toString("hex")); - await coreKitInstance.deleteFactor(pub); + await coreKitInstance.current.deleteFactor(pub); uiConsole("factor deleted"); }; @@ -335,7 +377,7 @@ function App() { }; const setTSSWalletIndex = async (index = 0) => { - await coreKitInstance.setTssWalletIndex(index); + await coreKitInstance.current.setTssWalletIndex(index); // log new account details await getAccounts(); }; @@ -357,58 +399,69 @@ function App() { } const address = (await web3.eth.getAccounts())[0]; const balance = web3.utils.fromWei( - await web3.eth.getBalance(address) // Balance is in wei + await web3.eth.getBalance(address), // Balance is in wei + "ether" ); uiConsole(balance); return balance; }; const signMessage = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { + if (coreKitInstance.current.sigType === SIG_TYPE.ECDSA_SECP256K1) { if (!web3) { uiConsole("web3 not initialized yet"); return; } const fromAddress = (await web3.eth.getAccounts())[0]; - const message = "hello"; const signedMessage = await web3.eth.personal.sign(message, fromAddress, ""); uiConsole(signedMessage); - } else if (coreKitInstance.keyType === "ed25519") { + } else if (coreKitInstance.current.sigType === SIG_TYPE.ED25519 || coreKitInstance.current.sigType === SIG_TYPE.BIP340) { const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); + const sig = await coreKitInstance.current.sign(msg); uiConsole(sig.toString("hex")); } }; - const signMessageWithPrecomputedTss = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { - const precomputedTssClient = await coreKitInstance.precompute_secp256k1(); + + const signWithKeyTweak = async (): Promise => { + if (coreKitInstance.current.sigType === SIG_TYPE.ECDSA_SECP256K1) { + throw new Error("Not supported for this signature type"); + } else if (coreKitInstance.current.sigType === SIG_TYPE.ED25519 || coreKitInstance.current.sigType === SIG_TYPE.BIP340) { const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg, false, precomputedTssClient); + const keyTweak = (() => { + const ec = new EC(coreKitInstance.current.keyType); + return ec.genKeyPair().getPrivate(); + })(); + const sig = await coreKitInstance.current.sign(msg, { keyTweak }); uiConsole(sig.toString("hex")); - } else if (coreKitInstance.keyType === "ed25519") { + } + }; + + const signMessageWithPrecomputedTss = async (): Promise => { + if (coreKitInstance.current.keyType === "secp256k1") { + const precomputedTssClient = await coreKitInstance.current.precompute_secp256k1(); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); + const sig = await coreKitInstance.current.sign(msg, { secp256k1Precompute: precomputedTssClient }); uiConsole(sig.toString("hex")); + } else { + throw new Error("Not supported for this key type"); } }; const signMultipleMessagesWithPrecomputedTss = async (): Promise => { - if (coreKitInstance.keyType === "secp256k1") { - const [precomputedTssClient, precomputedTssClient2] = await Promise.all([coreKitInstance.precompute_secp256k1(), coreKitInstance.precompute_secp256k1()]); + if (coreKitInstance.current.keyType === "secp256k1") { + const [precomputedTssClient, precomputedTssClient2] = await Promise.all([coreKitInstance.current.precompute_secp256k1(), coreKitInstance.current.precompute_secp256k1()]); const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg, false, precomputedTssClient); + const sig = await coreKitInstance.current.sign(msg, { secp256k1Precompute: precomputedTssClient }); const msg2 = Buffer.from("hello signer2!"); - const sig2 = await coreKitInstance.sign(msg2, false, precomputedTssClient2); + const sig2 = await coreKitInstance.current.sign(msg2, { secp256k1Precompute: precomputedTssClient2 }); uiConsole("Sig1: ", sig.toString("hex"), "Sig2: ", sig2.toString("hex")); - } else if (coreKitInstance.keyType === "ed25519") { - const msg = Buffer.from("hello signer!"); - const sig = await coreKitInstance.sign(msg); - uiConsole(sig.toString("hex")); + } else { + throw new Error("Not supported for this key type"); } }; const switchChainSepolia = async () => { @@ -428,7 +481,7 @@ function App() { logo: "https://cryptologos.cc/logos/ethereum-eth-logo.png", }; - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(newChainConfig); } uiConsole("Changed to Sepolia Network"); @@ -450,7 +503,7 @@ function App() { ticker: "MATIC", tickerName: "MATIC", }; - if (coreKitInstance.status === COREKIT_STATUS.LOGGED_IN) { + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { await setupProvider(newChainConfig); } uiConsole("Changed to Sepolia Network"); @@ -496,8 +549,8 @@ function App() { // if (selectedNetwork === WEB3AUTH_NETWORK.MAINNET) { // throw new Error("reset account is not recommended on mainnet"); // } - await coreKitInstance.tKey.storageLayer.setMetadata({ - privKey: new BN(coreKitInstance.state.postBoxKey!, "hex"), + await coreKitInstance.current.tKey.storageLayer.setMetadata({ + privKey: new BN(coreKitInstance.current.state.postBoxKey!, "hex"), input: { message: "KEY_NOT_FOUND" }, }); uiConsole("reset"); @@ -512,7 +565,7 @@ function App() { const fromAddress = (await web3.eth.getAccounts())[0]; const destination = "0x2E464670992574A613f10F7682D5057fB507Cc21"; - const amount = web3.utils.toWei("0.0001"); // Convert 1 ether to wei + const amount = web3.utils.toWei("0.0001", "ether"); // Convert 1 ether to wei // Submit transaction to the blockchain and wait for it to be mined uiConsole("Sending transaction..."); @@ -528,9 +581,9 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.setSecurityQuestion({ mpcCoreKit: coreKitInstance, question, answer, shareType: TssShareType.RECOVERY }); + await securityQuestion.setSecurityQuestion({ mpcCoreKit: coreKitInstance.current, question, answer, shareType: TssShareType.RECOVERY }); setNewQuestion(undefined); - let result = await securityQuestion.getQuestion(coreKitInstance); + let result = await securityQuestion.getQuestion(coreKitInstance.current); if (result) { setQuestion(question); } @@ -540,8 +593,8 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.changeSecurityQuestion({ mpcCoreKit: coreKitInstance, newQuestion, newAnswer, answer }); - let result = await securityQuestion.getQuestion(coreKitInstance); + await securityQuestion.changeSecurityQuestion({ mpcCoreKit: coreKitInstance.current, newQuestion, newAnswer, answer }); + let result = await securityQuestion.getQuestion(coreKitInstance.current); if (result) { setQuestion(question); } @@ -551,7 +604,7 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await securityQuestion.deleteSecurityQuestion(coreKitInstance); + await securityQuestion.deleteSecurityQuestion(coreKitInstance.current); setQuestion(undefined); }; @@ -559,19 +612,125 @@ function App() { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - const factorKey = await coreKitInstance.enableMFA({}); + const factorKey = await coreKitInstance.current.enableMFA({}); const factorKeyMnemonic = await keyToMnemonic(factorKey); uiConsole("MFA enabled, device factor stored in local store, deleted hashed cloud key, your backup factor key: ", factorKeyMnemonic); }; + const registerPasskey = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin is not set"); + } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } + await passkeyPlugin.current.registerPasskey() + }; + const loginWithPasskey = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin is not set"); + } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } + await passkeyPlugin.current.authenticateWithPasskey() + if (coreKitInstance.current.status === COREKIT_STATUS.LOGGED_IN) { + await setupProvider(); + } + setCoreKitStatus(coreKitInstance.current.status); + }; + const listPasskeys = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin is not set"); + } + const passkeys = await passkeyPlugin.current.listPasskeys() + uiConsole(passkeys) + }; + const enableStrictPasskey = async () => { + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin is not set"); + } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } + await passkeyPlugin.current.enableStrictPasskeyAuth() + uiConsole("Strict Passkey Auth Enabled") + }; + const disableStrictPasskey = async () => { + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin not found"); + } + const isEnabled = await passkeyPlugin.current.isStrictPasskeyEnabled() + if (!isEnabled) { + uiConsole("Strict Passkey Auth is not enabled") + return + } + if (!coreKitInstance) { + throw new Error("coreKitInstance is not set"); + } + if (!passkeyPlugin?.current) { + throw new Error("passkeyPlugin is not set"); + } + const result = shouldSupportPasskey(); + if (!result.isBrowserSupported) { + uiConsole("Browser not supported"); + return; + } + await passkeyPlugin.current.disableStrictPasskeyAuth() + uiConsole("Strict Passkey Auth Disabled") + }; const commit = async () => { if (!coreKitInstance) { throw new Error("coreKitInstance is not set"); } - await coreKitInstance.commitChanges(); + await coreKitInstance.current.commitChanges(); }; + const tssLibSelector = ( +
+ + +
+ ); + const loggedInView = ( <>

Account Details

@@ -580,7 +739,7 @@ function App() { Get User Info - @@ -601,7 +760,7 @@ function App() { [CRITICAL] Reset Account - @@ -617,6 +776,22 @@ function App() { Enable MFA + +

Register Passkey

+
+ + + + +

Manual Factors Manipulation

@@ -701,8 +876,12 @@ function App() { Sign Message + + + + diff --git a/demo/redirect-flow-example/src/index.tsx b/demo/redirect-flow-example/src/index.tsx index c333ebd2..0b480ef8 100644 --- a/demo/redirect-flow-example/src/index.tsx +++ b/demo/redirect-flow-example/src/index.tsx @@ -7,7 +7,5 @@ import App from "./App"; const root = ReactDOM.createRoot(document.getElementById("root") as HTMLElement); root.render( - - - + ); diff --git a/package-lock.json b/package-lock.json index 42818c30..d2fa201f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@web3auth/mpc-core-kit", - "version": "3.2.7", + "version": "4.1.7-alpha.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@web3auth/mpc-core-kit", - "version": "3.2.7", + "version": "4.1.7-alpha.0", "license": "ISC", "dependencies": { "@tkey/common-types": "^15.1.0", @@ -14,18 +14,19 @@ "@tkey/share-serialization": "^15.1.0", "@tkey/storage-layer-torus": "^15.1.0", "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.2.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/openlogin-utils": "^8.2.1", "@toruslabs/session-manager": "^3.1.0", - "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.1-alpha.0", + "@toruslabs/tss-frost-common": "^1.0.2-alpha.0", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", @@ -33,11 +34,12 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", @@ -66,8 +68,9 @@ }, "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -75,6 +78,9 @@ }, "@toruslabs/tss-frost-lib": { "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true } } }, @@ -2557,6 +2563,31 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@ethereumjs/rlp": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/rlp/-/rlp-5.0.2.tgz", + "integrity": "sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA==", + "license": "MPL-2.0", + "bin": { + "rlp": "bin/rlp.cjs" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@ethereumjs/util": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@ethereumjs/util/-/util-9.1.0.tgz", + "integrity": "sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog==", + "license": "MPL-2.0", + "dependencies": { + "@ethereumjs/rlp": "^5.0.2", + "ethereum-cryptography": "^2.2.1" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -2945,13 +2976,40 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/@noble/ciphers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.0.0.tgz", + "integrity": "sha512-wH5EHOmLi0rEazphPbecAzmjd12I6/Yv/SiHdkA9LSycsQk7RuuTp7am5/o62qYr0RScE7Pc9icXGBbsr6cesA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@noble/curves": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", - "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.6.0.tgz", + "integrity": "sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ==", "license": "MIT", "dependencies": { - "@noble/hashes": "1.4.0" + "@noble/hashes": "1.5.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" }, "funding": { "url": "https://paulmillr.com/funding/" @@ -3004,6 +3062,22 @@ "node": ">= 8" } }, + "node_modules/@nx/nx-linux-x64-gnu": { + "version": "20.2.2", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.2.tgz", + "integrity": "sha512-K1Z2DVTnyCGl4nolhZ8fvHEixoe1pZOY256LD6D0lGca4Fsi3mHQ7lDU237Pzyc91+cfLva/OAvrivRPeU+DMA==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, "node_modules/@octokit/auth-token": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", @@ -3580,9 +3654,9 @@ "license": "MIT" }, "node_modules/@scure/base": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.7.tgz", - "integrity": "sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.9.tgz", + "integrity": "sha512-8YKhl8GHiNI/pU2VMaofa2Tor7PJRAjwQLBBuilkJ9L5+13yVbC7JO/wS7piioAvPSwR3JKM1IJ/u4xQzbcXKg==", "license": "MIT", "funding": { "url": "https://paulmillr.com/funding/" @@ -3602,6 +3676,18 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/@scure/bip32/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@scure/bip39": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.3.0.tgz", @@ -3688,6 +3774,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/common-types/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/core": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/core/-/core-15.1.0.tgz", @@ -3711,6 +3821,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/core/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/service-provider-base": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/service-provider-base/-/service-provider-base-15.1.0.tgz", @@ -3750,6 +3884,30 @@ "@babel/runtime": "7.x" } }, + "node_modules/@tkey/service-provider-torus/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tkey/share-serialization": { "version": "15.1.0", "resolved": "https://registry.npmjs.org/@tkey/share-serialization/-/share-serialization-15.1.0.tgz", @@ -3807,6 +3965,30 @@ "ethereum-cryptography": "^2.1.3" } }, + "node_modules/@tkey/tss/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", + "license": "MIT", + "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/http-helpers": "^7.0.0", + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@tootallnate/quickjs-emscripten": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", @@ -3860,9 +4042,9 @@ } }, "node_modules/@toruslabs/constants": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.0.0.tgz", - "integrity": "sha512-c0lrqxxiR0FL+XdtbX+77PWTeB8izFUrnPwkF2pjjfXlMJLukAWPLhALpmZmqlGmJApT8kJbMN7be2LurAGa1g==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/constants/-/constants-14.2.0.tgz", + "integrity": "sha512-Mb5EfYNSPyvvw5s1JXnpZwritCgp4NmLni1imTqrSKGV3yikYhUn1ufyLMAHGnBBgv4AuMIXBIe3EpJJ+SpA0g==", "license": "MIT", "engines": { "node": ">=18.x", @@ -3907,22 +4089,28 @@ } } }, - "node_modules/@toruslabs/customauth/node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "node_modules/@toruslabs/customauth/node_modules/@toruslabs/torus.js": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.1.tgz", + "integrity": "sha512-sLaXA1/R8KTTjU4t+teL3PPaJr2+j01QLYn5IY/t5uTD+1G2nzzfVWpkMDYrk9EfQYw0u4aKJ1lT7j9uKafMlg==", "license": "MIT", "dependencies": { + "@toruslabs/bs58": "^1.0.0", + "@toruslabs/constants": "^14.0.0", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", - "@toruslabs/metadata-helpers": "^6.0.0" + "bn.js": "^5.2.1", + "elliptic": "^6.5.7", + "ethereum-cryptography": "^2.2.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", "npm": ">=9.x" }, - "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "peerDependencies": { + "@babel/runtime": "7.x" } }, "node_modules/@toruslabs/eccrypto": { @@ -3939,9 +4127,9 @@ } }, "node_modules/@toruslabs/elliptic-wrapper": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.0.tgz", - "integrity": "sha512-h9H2GfLLihSCDJiaTiePLLsrW/i9xupmn8pLE7XaKNyHUlujVFGWyk/ySZK9rlHjVRhLddy4ylb59BCdP81KMg==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.1.tgz", + "integrity": "sha512-2IehQMK+OfRnJPcwNuM5b+je3+8XlPqjbQVPm85vjsSoliWO23G/2OK1635melTZYcjbxa+88l2m0wWuK/YTSg==", "license": "ISC", "dependencies": { "@toruslabs/config": "^2.0.2", @@ -4208,15 +4396,15 @@ } }, "node_modules/@toruslabs/fetch-node-details": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.0.1.tgz", - "integrity": "sha512-cV/X8d97W9kU/ibycV/4rfkDSjl+MIgwbKhsVqvgDtoE1mdjMSeCxJTfEDgjxqzUcVlHjcbeUpzCe8qa/Gvs6A==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fetch-node-details/-/fetch-node-details-14.2.0.tgz", + "integrity": "sha512-k14RazfY4wKIUtdpfrSoUJasRNp2EMgv6ky4bGT1HYMPGU2JUNhvb6XTw5ISxfMrZuk04dLOhC4/XOtynFeFmQ==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/http-helpers": "^7.0.0", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -4226,13 +4414,23 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/ffjavascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@toruslabs/ffjavascript/-/ffjavascript-4.0.0.tgz", + "integrity": "sha512-sGPKK0xZ7KDLOsVc8/rCb83iCT1xD12+yfl3eoVNppr4vMcPJcXGwqpw4r1nP3Ln10UHvTCduxjUr3axdoxOSw==", + "license": "GPL-3.0", + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + } + }, "node_modules/@toruslabs/fnd-base": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.0.0.tgz", - "integrity": "sha512-zaYrm/HHHU4Evj/Et1HrVT8hmMaUpVw3Rcx2Gvp1W5pWZybbdEVoa0uqIANYxcr/NH7PUIU3DoRbk+bXx0kkYg==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/fnd-base/-/fnd-base-14.2.0.tgz", + "integrity": "sha512-nqfcigOuz3pQJi+Q+tdCaDUVCaSUkGqqmw0bGnaKK2/PyXBlZhnEDzReM3aUbApJn3xitfrJEhnRvOJhzog/og==", "license": "MIT", "dependencies": { - "@toruslabs/constants": "^14.0.0" + "@toruslabs/constants": "^14.2.0" }, "engines": { "node": ">=18.x", @@ -4337,12 +4535,34 @@ "@babel/runtime": "7.x" } }, + "node_modules/@toruslabs/secure-pub-sub": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@toruslabs/secure-pub-sub/-/secure-pub-sub-1.1.0.tgz", + "integrity": "sha512-OFN0Zsa37+c9aStHd4wzau+IYPY+gve9fBPDuPSIuS06cz/bov39DvCP0LaTQUKxK4eQMZENcPu6PeyBvQYQQA==", + "license": "MIT", + "dependencies": { + "@toruslabs/constants": "^14.1.1", + "@toruslabs/eccrypto": "^5.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "loglevel": "^1.9.1", + "socket.io-client": "^4.7.5" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, "node_modules/@toruslabs/session-manager": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.1.0.tgz", - "integrity": "sha512-VTaYjTTGTqpUm14YWRsSmY0Tt5z7evC0aOdVW7Ahw/jzyb1witNL4Va2+7XzunziEkLJS3luH+LkziHx67jyQg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@toruslabs/session-manager/-/session-manager-3.2.0.tgz", + "integrity": "sha512-t+EGFZhn8pxZ5Gjhxr99qNmK20zZD/RYEMRROBuwsETyy/QU17H6dKhqIb306GjmwUPkz2VKKTtJcOg9Ifijuw==", "license": "MIT", "dependencies": { + "@toruslabs/constants": "^14.1.1", "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "@toruslabs/metadata-helpers": "^6.0.0" @@ -4352,7 +4572,29 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@rollup/rollup-linux-x64-gnu": "^4.22.4" + "@rollup/rollup-linux-x64-gnu": "^4.24.4" + } + }, + "node_modules/@toruslabs/starkware-crypto": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/starkware-crypto/-/starkware-crypto-4.0.1.tgz", + "integrity": "sha512-AhnXUscFN2+oLeQuOEbi8vvrQnxUKnE0USWpg7eFHmqUBV8kg6+PAFiWsvJ01+GMQPTMKhKZHyMysxW5AFHc6Q==", + "license": "MIT", + "dependencies": { + "assert": "^2.1.0", + "bip39": "^3.1.0", + "bn.js": "^5.2.1", + "elliptic": "^6.6.1", + "enc-utils": "^3.0.0", + "ethereum-cryptography": "^2.2.1", + "hash.js": "^1.1.7" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" } }, "node_modules/@toruslabs/torus-scripts": { @@ -4431,9 +4673,9 @@ } }, "node_modules/@toruslabs/torus.js": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.1.0.tgz", - "integrity": "sha512-ZVQzeRl8qXbaw6jVUvPjNnuY6fJjxX4k8NoNfdp+8F2Og1rBiINnASMfRVeDajc4Bg+rfbsX5HZ+T0S+F6lv1A==", + "version": "15.2.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/torus.js/-/torus.js-15.2.0-alpha.0.tgz", + "integrity": "sha512-W0HXmffYTbA9pFC3gdj6ON+FsmzJlSksT6hW5mDkRLZp1qSprYppjHnnnelq5n46yOs+290En8LP5s/U5viluw==", "license": "MIT", "dependencies": { "@toruslabs/bs58": "^1.0.0", @@ -4441,10 +4683,10 @@ "@toruslabs/eccrypto": "^5.0.4", "@toruslabs/http-helpers": "^7.0.0", "bn.js": "^5.2.1", - "elliptic": "^6.5.6", + "elliptic": "^6.5.7", "ethereum-cryptography": "^2.2.1", "json-stable-stringify": "^1.1.1", - "loglevel": "^1.9.1" + "loglevel": "^1.9.2" }, "engines": { "node": ">=18.x", @@ -4455,17 +4697,17 @@ } }, "node_modules/@toruslabs/tss-client": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.1.0.tgz", - "integrity": "sha512-XhQG0lkbWS6KQ5mn9Mr+73c7HUE8RhbIPrkjZso2Bd9SJV4fwHgSLjDMPkvvTCBhrr3Fumw17akfL9tEvTLJZw==", + "version": "3.3.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-client/-/tss-client-3.3.0-alpha.0.tgz", + "integrity": "sha512-osExXxucMAlQQnyYS9el870xeILPj1Cv7QFCy2Nk+NsJQ9DW9uK9F3/n9Do8mn5C8POOEyXSwrobxGdypN1MxQ==", "license": "ISC", "dependencies": { - "@toruslabs/eccrypto": "^4.0.0", - "@types/chrome": "^0.0.268", + "@toruslabs/eccrypto": "^5.0.4", + "@toruslabs/tss-client-util": "^0.1.1", "bn.js": "^5.2.1", - "elliptic": "^6.5.4", - "ethereum-cryptography": "^2.1.3", - "socket.io-client": "^4.7.4" + "elliptic": "^6.5.7", + "ethereum-cryptography": "^3.0.0", + "socket.io-client": "^4.8.0" } }, "node_modules/@toruslabs/tss-client-util": { @@ -4477,48 +4719,117 @@ "bn.js": "^5.2.1" } }, - "node_modules/@toruslabs/tss-client/node_modules/@toruslabs/eccrypto": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/eccrypto/-/eccrypto-4.0.0.tgz", - "integrity": "sha512-Z3EINkbsgJx1t6jCDVIJjLSUEGUtNIeDjhMWmeDGOWcP/+v/yQ1hEvd1wfxEz4q5WqIHhevacmPiVxiJ4DljGQ==", - "license": "CC0-1.0", + "node_modules/@toruslabs/tss-client/node_modules/@noble/hashes": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.5.0.tgz", + "integrity": "sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip32": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.5.0.tgz", + "integrity": "sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw==", + "license": "MIT", "dependencies": { - "elliptic": "^6.5.4" + "@noble/curves": "~1.6.0", + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.7" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/@scure/bip39": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.4.0.tgz", + "integrity": "sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "~1.5.0", + "@scure/base": "~1.1.8" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@toruslabs/tss-client/node_modules/ethereum-cryptography": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-3.0.0.tgz", + "integrity": "sha512-Ij7U9OgVZc4MAui8BttPCEaWUrAXy+eo2IbVfIxZyfzfFxMQrbIWXRUbrsRBqRrIhJ75T8P+KQRKpKTaG0Du8Q==", + "license": "MIT", + "dependencies": { + "@noble/ciphers": "1.0.0", + "@noble/curves": "1.6.0", + "@noble/hashes": "1.5.0", + "@scure/bip32": "1.5.0", + "@scure/bip39": "1.4.0" }, "engines": { - "node": ">=18.x", - "npm": ">=9.x" + "node": "^14.21.3 || >=16", + "npm": ">=9" } }, "node_modules/@toruslabs/tss-dkls-lib": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-4.0.0.tgz", - "integrity": "sha512-XIYv4M6el0wlX/I4WEJjxDS/TcUKRrG/+PTljNumh3UrchfkNpm4uW4+d4aOHclAXbX42pi1SkRpz81+YM+Gsg==", + "version": "5.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-dkls-lib/-/tss-dkls-lib-5.0.0-alpha.0.tgz", + "integrity": "sha512-htUWzL2JZoKTtw++WLdQ1AK3wPTe0yezv/twWjpQIzLFkkfoO9Urnl5n9S6jFx98Z1dDRJRBWSED9PSuqY/x7w==", "dev": true }, "node_modules/@toruslabs/tss-frost-client": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-0.3.1.tgz", - "integrity": "sha512-x19hWpbbAHVRWSUPt6FB4VH1vdQGiOe/aSJTts2HZtXRph/LzEGuT7FXyIOnglocYf58t5Z1nXqFEzn0rgQ49Q==", + "version": "1.0.1-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-client/-/tss-frost-client-1.0.1-alpha.0.tgz", + "integrity": "sha512-4J7m818lsRhSwQKGVK6PvSJ+7hFLhKamMQ+CHo0DmfDD8WZNgWFqqfkNSscd5n/DZnmMl6g3KRLHAPsD9KAiTQ==", "license": "ISC", "dependencies": { + "@toruslabs/elliptic-wrapper": "^0.1.2-alpha.0", "@toruslabs/tss-client-util": "^0.1.1", - "@toruslabs/tss-frost-common": "^1.0.1", + "@toruslabs/tss-frost-common": "^1.0.2-alpha.0", "socket.io-client": "^4.7.2" } }, + "node_modules/@toruslabs/tss-frost-client/node_modules/@toruslabs/elliptic-wrapper": { + "version": "0.1.2-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/elliptic-wrapper/-/elliptic-wrapper-0.1.2-alpha.0.tgz", + "integrity": "sha512-GO5gAb6uGslKVmxsW7d/EwEKisJJjobbbqbvmtT/C0ZxJb9Xb3Xa5WtRTuy2gUDioXIRR970vl08TM71uGETkQ==", + "license": "ISC", + "dependencies": { + "@toruslabs/config": "^2.0.2", + "@toruslabs/eslint-config-typescript": "^3.0.3", + "bn.js": "^5.2.1", + "elliptic": "^6.5.4" + } + }, "node_modules/@toruslabs/tss-frost-common": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.1.tgz", - "integrity": "sha512-WmunNSH9XOM/oHQ/CjsTCn4KN9eqxo4keTRV6Yf6roq/S5hzKjOoowWM86vpwPJ6mfa2Qho9bndE2CCS11nKwg==", + "version": "1.0.2-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-common/-/tss-frost-common-1.0.2-alpha.0.tgz", + "integrity": "sha512-nNpXdVfcM6OMxIehMXQVJIs/0Cw8xSfrd9VcKMeAt0xuS1Fn+pFtFn46n5Wj0Ato58GeE6uGNyfIqtmw6LQa1Q==", "license": "ISC" }, "node_modules/@toruslabs/tss-frost-lib": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-1.0.0.tgz", - "integrity": "sha512-uDsM7f6NiVvNKVOfTUK+CucZUy1TjvTSYvk5LL8t2i/izWzNbBg4NO9qAFws3Kp9Kt1hG0xo8FkWzh3+oJ82xA==", + "version": "2.0.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib/-/tss-frost-lib-2.0.0-alpha.0.tgz", + "integrity": "sha512-oZy99HiES3OR8t6rrV6ccxwbrq38kxzz1C/5UIdqUVd2IRSWZzrcD+J4Q2/yR5bDMoK1HrucLShK96uMoXyv/A==", "dev": true }, + "node_modules/@toruslabs/tss-frost-lib-bip340": { + "version": "0.1.0-alpha.0", + "resolved": "https://registry.npmjs.org/@toruslabs/tss-frost-lib-bip340/-/tss-frost-lib-bip340-0.1.0-alpha.0.tgz", + "integrity": "sha512-2dK/fhIfkxdbI/WPCRc1nJlL81nu70VMJyj313eJbO6oU13S92YjzoIhiCvBn6G/F3XpftD44wqNkr+S3QbAuA==", + "optional": true, + "peer": true + }, + "node_modules/@toruslabs/tweetnacl-js": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@toruslabs/tweetnacl-js/-/tweetnacl-js-1.0.4.tgz", + "integrity": "sha512-h8fVemW5pstsKbm/fTx+y61dZkh5Pepy/92lsyKp83KErf96jT+w4LGx4nEgeAVrdYQDTLg2tO7vu/boEb23Iw==", + "license": "Unlicense" + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -4563,16 +4874,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/chrome": { - "version": "0.0.268", - "resolved": "https://registry.npmjs.org/@types/chrome/-/chrome-0.0.268.tgz", - "integrity": "sha512-7N1QH9buudSJ7sI8Pe4mBHJr5oZ48s0hcanI9w3wgijAlv1OZNUZve9JR4x42dn5lJ5Sm87V1JNfnoh10EnQlA==", - "license": "MIT", - "dependencies": { - "@types/filesystem": "*", - "@types/har-format": "*" - } - }, "node_modules/@types/elliptic": { "version": "6.4.18", "resolved": "https://registry.npmjs.org/@types/elliptic/-/elliptic-6.4.18.tgz", @@ -4601,27 +4902,6 @@ "devOptional": true, "license": "MIT" }, - "node_modules/@types/filesystem": { - "version": "0.0.36", - "resolved": "https://registry.npmjs.org/@types/filesystem/-/filesystem-0.0.36.tgz", - "integrity": "sha512-vPDXOZuannb9FZdxgHnqSwAG/jvdGM8Wq+6N4D/d80z+D4HWH+bItqsZaVRQykAn6WEVeEkLm2oQigyHtgb0RA==", - "license": "MIT", - "dependencies": { - "@types/filewriter": "*" - } - }, - "node_modules/@types/filewriter": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/@types/filewriter/-/filewriter-0.0.33.tgz", - "integrity": "sha512-xFU8ZXTw4gd358lb2jw25nxY9QAgqn2+bKKjKOYfNCzN4DKCFetK7sPtrlpg66Ywe3vWY9FNxprZawAh9wfJ3g==", - "license": "MIT" - }, - "node_modules/@types/har-format": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/@types/har-format/-/har-format-1.2.15.tgz", - "integrity": "sha512-RpQH4rXLuvTXKR0zqHq3go0RVXYv/YVqv4TnPH95VbwUxZdQlK1EtcMvQvMpDngHbt13Csh9Z4qT9AbkiQH5BA==", - "license": "MIT" - }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -4963,6 +5243,87 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "license": "ISC" }, + "node_modules/@web3auth/auth": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.1.tgz", + "integrity": "sha512-6iYmjhDtZcXGph3pPTVLShMv/xN+eLnc/+g04rqM34pfb85CK2OsvnufCxWcNpEuS/n5yo5voALPE4s/s2BXWw==", + "license": "MIT", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/ffjavascript": "^4.0.0", + "@toruslabs/metadata-helpers": "^6.0.0", + "@toruslabs/secure-pub-sub": "^1.1.0", + "@toruslabs/session-manager": "^3.2.0", + "@toruslabs/starkware-crypto": "^4.0.1", + "@toruslabs/tweetnacl-js": "^1.0.4", + "base64url": "^3.0.1", + "bip39": "^3.1.0", + "bn.js": "^5.2.1", + "bowser": "^2.11.0", + "color": "^4.2.3", + "enc-utils": "^3.0.0", + "end-of-stream": "^1.4.4", + "events": "^3.3.0", + "fast-safe-stringify": "^2.1.1", + "json-stable-stringify": "^1.1.1", + "loglevel": "^1.9.2", + "once": "^1.4.0", + "pump": "^3.0.2", + "readable-stream": "^4.5.2", + "ts-custom-error": "^3.3.1", + "typed-emitter": "^2.1.0" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "optionalDependencies": { + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/auth/node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.1.tgz", + "integrity": "sha512-fzgeABz7rrAlKYB0y2kSEiURrI0691CSL0+KXwKwhxvj92VULEDQLpBYLHpF49MSiPG4sq5CK3qHMnb9tlCjBw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@web3auth/auth/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@web3auth/auth/node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -5185,6 +5546,18 @@ "dev": true, "license": "Apache-2.0" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/acorn": { "version": "8.12.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", @@ -5541,7 +5914,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -5800,7 +6172,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -5856,6 +6227,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "license": "ISC", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, "node_modules/biskviit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/biskviit/-/biskviit-1.0.1.tgz", @@ -6220,7 +6600,6 @@ "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, "funding": [ { "type": "github", @@ -7469,6 +7848,16 @@ "dev": true, "license": "MIT" }, + "node_modules/enc-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/enc-utils/-/enc-utils-3.0.0.tgz", + "integrity": "sha512-e57t/Z2HzWOLwOp7DZcV0VMEY8t7ptWwsxyp6kM2b2zrk6JqIpXxzkruHAMiBsy5wg9jp/183GdiRXCvBtzsYg==", + "license": "MIT", + "dependencies": { + "is-typedarray": "1.0.0", + "typedarray-to-buffer": "3.1.5" + } + }, "node_modules/encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", @@ -7478,17 +7867,26 @@ "iconv-lite": "~0.4.13" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io-client": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", - "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.0.0" + "xmlhttprequest-ssl": "~2.1.1" } }, "node_modules/engine.io-parser": { @@ -8570,6 +8968,27 @@ "@scure/bip39": "1.3.0" } }, + "node_modules/ethereum-cryptography/node_modules/@noble/curves": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.4.2.tgz", + "integrity": "sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.4.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -8580,7 +8999,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8.x" @@ -8688,6 +9106,12 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "license": "MIT" }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, "node_modules/fast-uri": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.1.tgz", @@ -9773,7 +10197,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -10230,7 +10653,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -10448,7 +10870,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, "license": "MIT", "dependencies": { "has-tostringtag": "^1.0.0" @@ -10561,7 +10982,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.0", @@ -10768,7 +11188,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", - "dev": true, "license": "MIT" }, "node_modules/is-unicode-supported": { @@ -12331,7 +12750,6 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.6.tgz", "integrity": "sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==", - "dev": true, "license": "MIT", "dependencies": { "call-bind": "^1.0.7", @@ -13236,7 +13654,6 @@ "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", - "dev": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -13328,6 +13745,16 @@ "dev": true, "license": "MIT" }, + "node_modules/pump": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", + "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -14326,7 +14753,7 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, + "devOptional": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -14354,7 +14781,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -14755,14 +15181,14 @@ } }, "node_modules/socket.io-client": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", - "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "license": "MIT", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.5.2", + "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "engines": { @@ -15607,11 +16033,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/typed-emitter/-/typed-emitter-2.1.0.tgz", + "integrity": "sha512-g/KzbYKbH5C2vPkaXGu8DJlHrGKHLsM25Zg9WuC9pMGfuvT+X25tZQWo5fK1BjBm8+UrVE9LDCvaY0CQk+fXDA==", + "license": "MIT", + "optionalDependencies": { + "rxjs": "*" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, "license": "MIT", "dependencies": { "is-typedarray": "^1.0.0" @@ -15876,7 +16310,6 @@ "version": "0.12.5", "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -16668,9 +17101,9 @@ } }, "node_modules/xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } diff --git a/package.json b/package.json index 849401d0..15a15e16 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@web3auth/mpc-core-kit", - "version": "3.2.7", + "version": "4.1.7-alpha.0", "description": "MPC CoreKit SDK for web3Auth", "keywords": [ "web3Auth/mpc-core-kit", @@ -31,8 +31,9 @@ ], "peerDependencies": { "@babel/runtime": "^7.x", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0" + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", + "@toruslabs/tss-frost-lib-bip340": "^0.1.0-alpha.0" }, "peerDependenciesMeta": { "@toruslabs/tss-dkls-lib": { @@ -40,6 +41,9 @@ }, "@toruslabs/tss-frost-lib": { "optional": true + }, + "@toruslabs/tss-frost-lib-bip340": { + "optional": true } }, "dependencies": { @@ -48,18 +52,19 @@ "@tkey/share-serialization": "^15.1.0", "@tkey/storage-layer-torus": "^15.1.0", "@tkey/tss": "^15.1.0", - "@toruslabs/constants": "^14.0.0", + "@toruslabs/constants": "^14.2.0", "@toruslabs/customauth": "^20.3.0", - "@toruslabs/elliptic-wrapper": "^0.1.0", - "@toruslabs/fetch-node-details": "^14.0.1", - "@toruslabs/fnd-base": "^14.0.0", + "@toruslabs/elliptic-wrapper": "^0.1.1", + "@toruslabs/fetch-node-details": "^14.2.0", + "@toruslabs/fnd-base": "^14.2.0", "@toruslabs/metadata-helpers": "^6.0.0", - "@toruslabs/session-manager": "^3.1.0", "@toruslabs/openlogin-utils": "^8.2.1", - "@toruslabs/torus.js": "^15.1.0", - "@toruslabs/tss-client": "^3.1.0", - "@toruslabs/tss-frost-client": "0.3.1", - "@toruslabs/tss-frost-common": "^1.0.1", + "@toruslabs/torus.js": "15.2.0-alpha.0", + "@toruslabs/session-manager": "^3.1.0", + "@toruslabs/tss-client": "^3.3.0-alpha.0", + "@toruslabs/tss-frost-client": "^1.0.1-alpha.0", + "@toruslabs/tss-frost-common": "^1.0.2-alpha.0", + "@web3auth/auth": "^9.6.1", "bn.js": "^5.2.1", "bowser": "^2.11.0", "elliptic": "^6.5.7", @@ -67,11 +72,12 @@ }, "devDependencies": { "@babel/register": "^7.25.7", + "@noble/curves": "^1.6.0", "@toruslabs/config": "^2.2.0", "@toruslabs/eslint-config-typescript": "^3.3.3", "@toruslabs/torus-scripts": "^6.1.2", - "@toruslabs/tss-dkls-lib": "^4.0.0", - "@toruslabs/tss-frost-lib": "^1.0.0", + "@toruslabs/tss-dkls-lib": "^5.0.0-alpha.0", + "@toruslabs/tss-frost-lib": "^2.0.0-alpha.0", "@types/chai": "^4.3.16", "@types/elliptic": "^6.4.18", "@types/jsonwebtoken": "^9.0.7", diff --git a/src/constants.ts b/src/constants.ts index e29a4b9b..d927cfcd 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,4 +1,4 @@ -import { TORUS_SAPPHIRE_NETWORK } from "@toruslabs/constants"; +import { SIG_TYPE, TORUS_SAPPHIRE_NETWORK } from "@toruslabs/constants"; export const WEB3AUTH_NETWORK = { MAINNET: TORUS_SAPPHIRE_NETWORK.SAPPHIRE_MAINNET, @@ -51,3 +51,5 @@ export const FIELD_ELEMENT_HEX_LEN = 32 * 2; // Length of secp256k1 field elemen export const MAX_FACTORS = 10; // Maximum number of factors that can be added to an account. export const SOCIAL_TKEY_INDEX = 1; + +export { SIG_TYPE }; diff --git a/src/helper/errors.ts b/src/helper/errors.ts index a622e75a..f22c3131 100644 --- a/src/helper/errors.ts +++ b/src/helper/errors.ts @@ -135,6 +135,8 @@ class CoreKitError extends AbstractCoreKitError { 1005: "No valid storage option found.", 1006: "No data found in storage.", 1007: "Invalid config.", + 1008: "Invalid key type.", + 1009: "Invalid signature type.", // TSS and key management errors 1101: "'tssLib' is required when running in this UX mode.", @@ -215,6 +217,14 @@ class CoreKitError extends AbstractCoreKitError { return CoreKitError.fromCode(1007, extraMessage); } + public static invalidKeyType(extraMessage = ""): ICoreKitError { + return CoreKitError.fromCode(1008, extraMessage); + } + + public static invalidSigType(extraMessage = ""): ICoreKitError { + return CoreKitError.fromCode(1009, extraMessage); + } + // TSS and key management errors public static tssLibRequired(extraMessage = ""): ICoreKitError { return CoreKitError.fromCode(1101, extraMessage); diff --git a/src/index.ts b/src/index.ts index 3e41424a..3a4bd8d6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,5 +2,6 @@ export * from "./constants"; export * from "./helper"; export * from "./interfaces"; export * from "./mpcCoreKit"; +export * from "./plugins"; export * from "./utils"; export { factorKeyCurve } from "@tkey/tss"; diff --git a/src/interfaces.ts b/src/interfaces.ts index ef5f64d7..ccfb484d 100644 --- a/src/interfaces.ts +++ b/src/interfaces.ts @@ -1,28 +1,34 @@ import { KeyType, Point as TkeyPoint, ShareDescriptionMap } from "@tkey/common-types"; -import { TKeyTSS } from "@tkey/tss"; +import { TKeyTSS, TSSTorusServiceProvider } from "@tkey/tss"; +import { WEB3AUTH_SIG_TYPE } from "@toruslabs/constants"; import type { AGGREGATE_VERIFIER_TYPE, ExtraParams, LoginWindowResponse, PasskeyExtraParams, SubVerifierDetails, + TorusAggregateLoginResponse, + TorusLoginResponse, TorusVerifierResponse, UX_MODE_TYPE, } from "@toruslabs/customauth"; +import { TorusKey } from "@toruslabs/torus.js"; import { Client } from "@toruslabs/tss-client"; // TODO: move the types to a base class for both dkls and frost in future import type { tssLib as TssDklsLib } from "@toruslabs/tss-dkls-lib"; -import type { tssLib as TssFrostLib } from "@toruslabs/tss-frost-lib"; +import type { tssLib as TssFrostLibEd25519 } from "@toruslabs/tss-frost-lib"; +import type { tssLib as TssFrostLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; +import { SafeEventEmitter } from "@web3auth/auth"; import BN from "bn.js"; import { FactorKeyTypeShareDescription, TssShareType, USER_PATH, WEB3AUTH_NETWORK } from "./constants"; +import { ISessionSigGenerator } from "./plugins/ISessionSigGenerator"; export type CoreKitMode = UX_MODE_TYPE | "nodejs" | "react-native"; -export type V3TSSLibType = { keyType: string; lib: unknown }; +export type V4TSSLibType = typeof TssDklsLib | typeof TssFrostLibEd25519 | typeof TssFrostLibBip340; +export type TssLibType = typeof TssDklsLib | typeof TssFrostLibEd25519 | typeof TssFrostLibBip340; -export type V4TSSLibType = typeof TssFrostLib | typeof TssDklsLib; -export type TssLibType = V4TSSLibType | V3TSSLibType; export interface IStorage { getItem(key: string): string | null; setItem(key: string, value: string): void; @@ -182,131 +188,6 @@ export interface Web3AuthState { factorKey?: BN; } -export interface ICoreKit { - /** - * The tKey instance, if initialized. - * TKey is the core module on which this wrapper SDK sits for easy integration. - **/ - tKey: TKeyTSS | null; - - /** - * Signatures generated from the OAuth Login. - **/ - signatures: string[] | null; - - /** - * Status of the current MPC Core Kit Instance - **/ - status: COREKIT_STATUS; - - /** - * The current sdk state. - */ - state: Web3AuthState; - - /** - * The current session id. - */ - sessionId: string; - - /** - * The function used to initailise the state of MPCCoreKit - * Also is useful to resume an existing session. - * @param initParams - Contains flag for handleRedirectResult. Default is true. - */ - init(initParams?: InitParams): Promise; - - /** - * Login using OAuth flow and initialize all relevant components. - * @param loginParams - Parameters for OAuth-based Login. - */ - loginWithOAuth(loginParams: OAuthLoginParams): Promise; - - /** - * Login using JWT Token and initialize all relevant components. - * @param loginParams - Parameters for JWT-based Login. - */ - loginWithJWT(loginParams: JWTLoginParams): Promise; - - /** - * Enable MFA for the user. Deletes the Cloud factor and generates a new - * factor key and a backup factor key. Recommended for Non Custodial Flow. - * Stores the factor key in browser storage and returns the backup factor key. - * - * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. - * - * @param enableMFAParams - Parameters for recovery factor for MFA. - * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. - * @returns The backup factor key if if recoveryFacort is true else empty string. - */ - enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; - - /** - * Second step for login where the user inputs their factor key. - * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key - * Share. You can generate it using `generateFactorKey()` function or use an - * existing one. - */ - inputFactorKey(factorKey: BN): Promise; - - /** - * Returns the current Factor Key and TssShareType in MPC Core Kit State - **/ - getCurrentFactorKey(): IFactorKey; - - /** - * Creates a new factor for authentication. Generates and returns a new factor - * key if no factor key is provided in `params`. - * @param createFactorParams - Parameters for creating a new factor. - * @returns The factor key. - */ - createFactor(createFactorParams: CreateFactorParams): Promise; - - /** - * Deletes the factor identified by the given public key, including all - * associated metadata. - * @param factorPub - The public key of the factor to delete. - */ - deleteFactor(factorPub: TkeyPoint): Promise; - - /** - * Logs out the user, terminating the session. - */ - logout(): Promise; - - /** - * Get user information provided by the OAuth provider. - */ - getUserInfo(): UserInfo; - - /** - * Get information about how the keys of the user is managed according to the information in the metadata server. - */ - getKeyDetails(): MPCKeyDetails; - - /** - * Commit the changes made to the user's account when in manual sync mode. - */ - commitChanges(): Promise; - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Exports the private key scalar for the current account index. - * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. - */ - _UNSAFE_exportTssKey(): Promise; - - /** - * WARNING: Use with caution. This will export the private signing key. - * - * Attempts to export the ed25519 private key seed. Only works if import key - * flow has been used. - */ - _UNSAFE_exportTssEd25519Seed(): Promise; -} - export type WEB3AUTH_NETWORK_TYPE = (typeof WEB3AUTH_NETWORK)[keyof typeof WEB3AUTH_NETWORK]; export type USER_PATH_TYPE = (typeof USER_PATH)[keyof typeof USER_PATH]; @@ -453,9 +334,173 @@ export interface Web3AuthOptions { */ useClientGeneratedTSSKey?: boolean; } - export type Web3AuthOptionsWithDefaults = Required; +export interface IMPCContext { + stateEmitter: SafeEventEmitter; + config: Web3AuthOptionsWithDefaults; + status: COREKIT_STATUS; + state: Web3AuthState; + torusSp: TSSTorusServiceProvider | null; + updateState: (newState: Partial) => void; + getUserInfo: () => UserInfo; + setupTkey: (params?: { + providedImportKey?: string; + sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; + userInfo?: UserInfo; + importingSFAKey?: boolean; + persistSessionSigs?: boolean; + }) => Promise; + setCustomSessionSigGenerator: (sessionSigGenerator: ISessionSigGenerator) => void; +} + +export interface Secp256k1PrecomputedClient { + client: Client; + serverCoeffs: Record; + signatures: string[]; +} + +export interface ICoreKit { + /** + * The tKey instance, if initialized. + * TKey is the core module on which this wrapper SDK sits for easy integration. + **/ + tKey: TKeyTSS | null; + + /** + * Status of the current MPC Core Kit Instance + **/ + status: COREKIT_STATUS; + + /** + * The current sdk state. + */ + state: Web3AuthState; + + /** + * The current session id. + */ + sessionId: string; + + /** + * The function used to initailise the state of MPCCoreKit + * Also is useful to resume an existing session. + * @param initParams - Contains flag for handleRedirectResult. Default is true. + */ + init(initParams?: InitParams): Promise; + + /** + * Login using OAuth flow and initialize all relevant components. + * @param loginParams - Parameters for OAuth-based Login. + */ + loginWithOAuth(loginParams: OAuthLoginParams): Promise; + + /** + * Login using JWT Token and initialize all relevant components. + * @param loginParams - Parameters for JWT-based Login. + */ + loginWithJWT(loginParams: JWTLoginParams): Promise; + + /** + * Enable MFA for the user. Deletes the Cloud factor and generates a new + * factor key and a backup factor key. Recommended for Non Custodial Flow. + * Stores the factor key in browser storage and returns the backup factor key. + * + * ** NOTE before enableMFA, you will need to commitChanges if manualSync is true. + * + * @param enableMFAParams - Parameters for recovery factor for MFA. + * @param recoveryFactor - Default is true. If false, recovery factor will NOT be created. + * @returns The backup factor key if if recoveryFacort is true else empty string. + */ + enableMFA(enableMFAParams: EnableMFAParams, recoveryFactor?: boolean): Promise; + + /** + * Second step for login where the user inputs their factor key. + * @param factorKey - A BN used for encrypting your Device/ Recovery TSS Key + * Share. You can generate it using `generateFactorKey()` function or use an + * existing one. + */ + inputFactorKey(factorKey: BN): Promise; + + /** + * Returns the current Factor Key and TssShareType in MPC Core Kit State + **/ + getCurrentFactorKey(): IFactorKey; + + /** + * Creates a new factor for authentication. Generates and returns a new factor + * key if no factor key is provided in `params`. + * @param createFactorParams - Parameters for creating a new factor. + * @returns The factor key. + */ + createFactor(createFactorParams: CreateFactorParams): Promise; + + /** + * Deletes the factor identified by the given public key, including all + * associated metadata. + * @param factorPub - The public key of the factor to delete. + */ + deleteFactor(factorPub: TkeyPoint): Promise; + + /** + * Logs out the user, terminating the session. + */ + logout(): Promise; + + /** + * Get user information provided by the OAuth provider. + */ + getUserInfo(): UserInfo; + + /** + * Get information about how the keys of the user is managed according to the information in the metadata server. + */ + getKeyDetails(): MPCKeyDetails; + + getSessionSignatures(): Promise; + + setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator): void; + + /** + * Commit the changes made to the user's account when in manual sync mode. + */ + commitChanges(): Promise; + + /** + * Create a signature for the given data. + * + * Options: + * - hashed: The data is already hashed. Do not hash again. Only works for ecdsa-secp256k1. + * - secp256k1Precompute: Provide a precomputed client for faster signing. Only works for ecdsa-secp256k1. + * - keyTweak: Provide a bip340 key tweak. Only works for bip340. + */ + sign( + data: Buffer, + opts?: { + hashed?: boolean; + secp256k1Precompute?: Secp256k1PrecomputedClient; + keyTweak?: BN; + } + ): Promise; + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Exports the private key scalar for the current account index. + * + * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + */ + _UNSAFE_exportTssKey(): Promise; + + /** + * WARNING: Use with caution. This will export the private signing key. + * + * Attempts to export the ed25519 private key seed. Only works if import key + * flow has been used. + */ + _UNSAFE_exportTssEd25519Seed(): Promise; +} + export interface SessionData { /** * @deprecated Use `postBoxKey` instead. @@ -474,9 +519,12 @@ export interface TkeyLocalStoreData { factorKey: string; } +export type SigType = WEB3AUTH_SIG_TYPE; + export interface CoreKitSigner { keyType: KeyType; - sign(data: Buffer, hashed?: boolean): Promise; + sigType: SigType; + sign(data: Buffer, opts?: { hashed?: boolean }): Promise; getPubKey(): Buffer; } @@ -491,7 +539,6 @@ export interface EthereumSigner { getPublic: () => Promise; } -export interface Secp256k1PrecomputedClient { - client: Client; - serverCoeffs: Record; -} +export type StateEmitterEvents = { + LOGOUT: () => void; +}; diff --git a/src/mpcCoreKit.ts b/src/mpcCoreKit.ts index 505629bb..44b7fc1d 100644 --- a/src/mpcCoreKit.ts +++ b/src/mpcCoreKit.ts @@ -3,18 +3,20 @@ import { CoreError } from "@tkey/core"; import { ShareSerializationModule } from "@tkey/share-serialization"; import { TorusStorageLayer } from "@tkey/storage-layer-torus"; import { factorKeyCurve, getPubKeyPoint, lagrangeInterpolation, TKeyTSS, TSSTorusServiceProvider } from "@tkey/tss"; -import { KEY_TYPE, SIGNER_MAP } from "@toruslabs/constants"; +import { SIGNER_MAP } from "@toruslabs/constants"; import { AGGREGATE_VERIFIER, TORUS_METHOD, TorusAggregateLoginResponse, TorusLoginResponse, UX_MODE } from "@toruslabs/customauth"; import type { UX_MODE_TYPE } from "@toruslabs/customauth/dist/types/utils/enums"; -import { Ed25519Curve } from "@toruslabs/elliptic-wrapper"; +import { Ed25519Curve, Secp256k1Curve } from "@toruslabs/elliptic-wrapper"; import { fetchLocalConfig } from "@toruslabs/fnd-base"; import { keccak256 } from "@toruslabs/metadata-helpers"; import { SessionManager } from "@toruslabs/session-manager"; import { Torus as TorusUtils, TorusKey } from "@toruslabs/torus.js"; import { Client, getDKLSCoeff, setupSockets } from "@toruslabs/tss-client"; import type { WasmLib as DKLSWasmLib } from "@toruslabs/tss-dkls-lib"; -import { sign as signEd25519 } from "@toruslabs/tss-frost-client"; -import type { WasmLib as FrostWasmLib } from "@toruslabs/tss-frost-lib"; +import { sign as signFrost } from "@toruslabs/tss-frost-client"; +import type { WasmLib as FrostWasmLibEd25519 } from "@toruslabs/tss-frost-lib"; +import type { WasmLib as FrostWasmLibBip340 } from "@toruslabs/tss-frost-lib-bip340"; +import { SafeEventEmitter } from "@web3auth/auth"; import BN from "bn.js"; import bowser from "bowser"; import { ec as EC } from "elliptic"; @@ -39,22 +41,25 @@ import { EnableMFAParams, ICoreKit, IFactorKey, + IMPCContext, InitParams, JWTLoginParams, MPCKeyDetails, OAuthLoginParams, Secp256k1PrecomputedClient, SessionData, + SigType, + StateEmitterEvents, SubVerifierDetailsParams, TkeyLocalStoreData, TssLibType, UserInfo, - V3TSSLibType, - V4TSSLibType, Web3AuthOptions, Web3AuthOptionsWithDefaults, Web3AuthState, } from "./interfaces"; +import { DefaultSessionSigGeneratorPlugin } from "./plugins/DefaultSessionSigGenerator"; +import { ISessionSigGenerator } from "./plugins/ISessionSigGenerator"; import { deriveShareCoefficients, ed25519, @@ -70,11 +75,13 @@ import { scalarBNToBufferSEC1, } from "./utils"; -export class Web3AuthMPCCoreKit implements ICoreKit { +export class Web3AuthMPCCoreKit implements ICoreKit, IMPCContext { public state: Web3AuthState = { accountIndex: 0 }; public torusSp: TSSTorusServiceProvider | null = null; + public stateEmitter: SafeEventEmitter; + private options: Web3AuthOptionsWithDefaults; private storageLayer: TorusStorageLayer | null = null; @@ -93,12 +100,16 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private _tssLib: TssLibType; - private wasmLib: DKLSWasmLib | FrostWasmLib; + private wasmLib: DKLSWasmLib | FrostWasmLibEd25519 | FrostWasmLibBip340; private _keyType: KeyType; + private _sigType: SigType; + private atomicCallStackCounter: number = 0; + private sessionSigGenerator: ISessionSigGenerator; + constructor(options: Web3AuthOptions) { if (!options.web3AuthClientId) { throw CoreKitError.clientIdInvalid(); @@ -106,6 +117,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this._tssLib = options.tssLib; this._keyType = options.tssLib.keyType as KeyType; + this._sigType = options.tssLib.sigType as SigType; const isNodejsOrRN = this.isNodejsOrRN(options.uxMode); @@ -124,11 +136,11 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (!options.disableHashedFactorKey) options.disableHashedFactorKey = false; if (!options.hashedFactorNonce) options.hashedFactorNonce = options.web3AuthClientId; if (options.disableSessionManager === undefined) options.disableSessionManager = false; - + this.sessionSigGenerator = new DefaultSessionSigGeneratorPlugin(this); this.options = options as Web3AuthOptionsWithDefaults; this.currentStorage = new AsyncStorage(this._storageBaseKey, options.storage); - + this.stateEmitter = new SafeEventEmitter(); if (!options.disableSessionManager) { this.sessionManager = new SessionManager({ sessionTime: options.sessionTime, @@ -149,8 +161,12 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return this._keyType; } - get signatures(): string[] { - return this.state?.signatures ? this.state.signatures : []; + get sigType(): SigType { + return this._sigType; + } + + get config(): Web3AuthOptionsWithDefaults { + return this.options; } public get _storageKey(): string { @@ -175,7 +191,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } get supportsAccountIndex(): boolean { - return this._keyType !== KeyType.ed25519; + return this._sigType !== "ed25519"; } private get verifier(): string { @@ -194,7 +210,15 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } private get useClientGeneratedTSSKey(): boolean { - return this.keyType === KeyType.ed25519 && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + return this._sigType === "ed25519" && this.options.useClientGeneratedTSSKey === undefined ? true : !!this.options.useClientGeneratedTSSKey; + } + + public setCustomSessionSigGenerator(sessionSigGenerator: ISessionSigGenerator) { + this.sessionSigGenerator = sessionSigGenerator; + } + + async getSessionSignatures(): Promise { + return this.sessionSigGenerator.getSessionSigs(); } // RecoverTssKey only valid for user that enable MFA where user has 2 type shares : @@ -233,8 +257,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType); - if (this.keyType === KEY_TYPE.ED25519 && this.options.useDKG) { - throw CoreKitError.invalidConfig("DKG is not supported for ed25519 key type"); + if (this._sigType === "ed25519" && this.options.useDKG) { + throw CoreKitError.invalidConfig("DKG is not supported for ed25519 signature type"); } this.torusSp = new TSSTorusServiceProvider({ @@ -333,33 +357,20 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const verifierParams = params as SubVerifierDetailsParams; const aggregateParams = params as AggregateVerifierLoginParams; let loginResponse: TorusLoginResponse | TorusAggregateLoginResponse; + let userInfo; if (verifierParams.subVerifierDetails) { // single verifier login. loginResponse = await tkeyServiceProvider.triggerLogin((params as SubVerifierDetailsParams).subVerifierDetails); - + userInfo = loginResponse.userInfo; if (this.isRedirectMode) return; - - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes, - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); } else if (aggregateParams.subVerifierDetailsArray) { loginResponse = await tkeyServiceProvider.triggerAggregateLogin({ aggregateVerifierType: aggregateParams.aggregateVerifierType || AGGREGATE_VERIFIER.SINGLE_VERIFIER_ID, verifierIdentifier: aggregateParams.aggregateVerifierIdentifier as string, subVerifierDetailsArray: aggregateParams.subVerifierDetailsArray, }); - + userInfo = loginResponse.userInfo[0]; if (this.isRedirectMode) return; - - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes, - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); } if (loginResponse && registerExistingSFAKey && loginResponse.finalKeyData.privKey) { @@ -367,9 +378,21 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.invalidConfig("Cannot register existing SFA key for v1 users, please contact web3auth support."); } const existingSFAKey = loginResponse.finalKeyData.privKey.padStart(64, "0"); - await this.setupTkey(existingSFAKey, loginResponse, true); + await this.setupTkey({ + providedImportKey: existingSFAKey, + sfaLoginResponse: loginResponse, + userInfo, + importingSFAKey: true, + persistSessionSigs: true, + }); } else { - await this.setupTkey(importTssKey, loginResponse, false); + await this.setupTkey({ + providedImportKey: importTssKey, + sfaLoginResponse: loginResponse, + userInfo, + importingSFAKey: true, + persistSessionSigs: true, + }); } } catch (err: unknown) { log.error("login error", err); @@ -422,24 +445,26 @@ export class Web3AuthMPCCoreKit implements ICoreKit { // wait for prefetch completed before setup tkey const [loginResponse] = await Promise.all([loginPromise, ...prefetchTssPubs]); - const postBoxKey = this._getPostBoxKey(loginResponse); - - this.torusSp.postboxKey = new BN(postBoxKey, "hex"); - - this.updateState({ - postBoxKey, - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes || [], - userInfo: { ...parseToken(idToken), verifier, verifierId }, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); if (registerExistingSFAKey && loginResponse.finalKeyData.privKey) { if (loginResponse.metadata.typeOfUser === "v1") { throw CoreKitError.invalidConfig("Cannot register existing SFA key for v1 users, please contact web3auth support."); } const existingSFAKey = loginResponse.finalKeyData.privKey.padStart(64, "0"); - await this.setupTkey(existingSFAKey, loginResponse, true); + await this.setupTkey({ + providedImportKey: existingSFAKey, + importingSFAKey: true, + sfaLoginResponse: loginResponse, + userInfo: { ...parseToken(idToken), verifier, verifierId }, + persistSessionSigs: true, + }); } else { - await this.setupTkey(importTssKey, loginResponse, false); + await this.setupTkey({ + providedImportKey: importTssKey, + importingSFAKey: false, + sfaLoginResponse: loginResponse, + userInfo: { ...parseToken(idToken), verifier, verifierId }, + persistSessionSigs: true, + }); } } catch (err: unknown) { log.error("login error", err); @@ -462,43 +487,33 @@ export class Web3AuthMPCCoreKit implements ICoreKit { try { const result = await this.torusSp.customAuthInstance.getRedirectResult(); let loginResponse: TorusLoginResponse | TorusAggregateLoginResponse; + let userInfo; if (result.method === TORUS_METHOD.TRIGGER_LOGIN) { loginResponse = result.result as TorusLoginResponse; if (!loginResponse) { throw CoreKitError.invalidTorusLoginResponse(); } - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes || [], - userInfo: loginResponse.userInfo, - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); - const userInfo = this.getUserInfo(); + userInfo = loginResponse.userInfo; this.torusSp.verifierName = userInfo.verifier; } else if (result.method === TORUS_METHOD.TRIGGER_AGGREGATE_LOGIN) { loginResponse = result.result as TorusAggregateLoginResponse; if (!loginResponse) { throw CoreKitError.invalidTorusAggregateLoginResponse(); } - this.updateState({ - postBoxKey: this._getPostBoxKey(loginResponse), - postboxKeyNodeIndexes: loginResponse.nodesData?.nodeIndexes || [], - userInfo: loginResponse.userInfo[0], - signatures: this._getSignatures(loginResponse.sessionData.sessionTokenData), - }); - const userInfo = this.getUserInfo(); + userInfo = loginResponse.userInfo[0]; this.torusSp.verifierName = userInfo.aggregateVerifier; } else { throw CoreKitError.unsupportedRedirectMethod(); } - const userInfo = this.getUserInfo(); - if (!this.state.postBoxKey) { - throw CoreKitError.postBoxKeyMissing("postBoxKey not present in state after processing redirect result."); - } this.torusSp.postboxKey = new BN(this.state.postBoxKey, "hex"); this.torusSp.verifierId = userInfo.verifierId; - await this.setupTkey(); + await this.setupTkey({ + importingSFAKey: false, + userInfo, + sfaLoginResponse: loginResponse, + persistSessionSigs: true, + }); } catch (error: unknown) { this.resetState(); log.error("error while handling redirect result", error); @@ -676,17 +691,37 @@ export class Web3AuthMPCCoreKit implements ICoreKit { /** * Get public key in ed25519 format. * - * Throws an error if keytype is not compatible with ed25519. + * Throws an error if signature type is not ed25519. */ public getPubKeyEd25519(): Buffer { + if (this._sigType !== "ed25519") { + throw CoreKitError.default(`getPubKeyEd25519 not supported for signature type ${this.sigType}`); + } + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); return ed25519().keyFromPublic(p).getPublic(); } - public async precompute_secp256k1(): Promise<{ + /** + * Get public key in bip340 format. + * + * Throws an error if signature type is not bip340. + */ + public getPubKeyBip340(): Buffer { + if (this._sigType !== "bip340") { + throw CoreKitError.default(`getPubKeyBip340 not supported for signature type ${this.sigType}`); + } + + const p = this.tkey.tssCurve.keyFromPublic(this.getPubKey()).getPublic(); + return p.getX().toBuffer("be", 32); + } + + public async precompute_secp256k1(params?: { sessionSignatures?: string[] }): Promise<{ client: Client; serverCoeffs: Record; + signatures: string[]; }> { + const { sessionSignatures } = params || {}; this.wasmLib = await this.loadTssWasm(); // PreSetup const { tssShareIndex } = this.state; @@ -735,7 +770,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.activeSessionNotFound(); } - const { signatures } = this; + const signatures = sessionSignatures || (await this.getSessionSignatures()); if (!signatures) { throw CoreKitError.signaturesNotPresent(); } @@ -755,6 +790,13 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this.wasmLib as DKLSWasmLib ); + // Suppress client logs if logging is disabled. + client.log = (msg: string) => { + if (!this.enableLogging) return; + // eslint-disable-next-line no-console + console.log(msg); + }; + const serverCoeffs: Record = {}; for (let i = 0; i < participatingServerDKGIndexes.length; i++) { const serverIndex = participatingServerDKGIndexes[i]; @@ -768,16 +810,33 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return { client, serverCoeffs, + signatures, }; } - public async sign(data: Buffer, hashed: boolean = false, secp256k1Precompute?: Secp256k1PrecomputedClient): Promise { + public async sign( + data: Buffer, + opts?: { + hashed?: boolean; + secp256k1Precompute?: Secp256k1PrecomputedClient; + keyTweak?: BN; + } + ): Promise { this.wasmLib = await this.loadTssWasm(); - if (this.keyType === KeyType.secp256k1) { - const sig = await this.sign_ECDSA_secp256k1(data, hashed, secp256k1Precompute); + if (this._sigType === "ecdsa-secp256k1") { + if (opts?.keyTweak) { + throw CoreKitError.default("key tweaking not supported for ecdsa-secp256k1"); + } + const sig = await this.sign_ECDSA_secp256k1(data, opts?.hashed, opts?.secp256k1Precompute); return Buffer.concat([sig.r, sig.s, Buffer.from([sig.v])]); - } else if (this.keyType === KeyType.ed25519) { - return this.sign_ed25519(data, hashed); + } else if (this._sigType === "ed25519" || this._sigType === "bip340") { + if (opts?.hashed) { + throw CoreKitError.default(`hashed data not supported for bip340`); + } else if (opts?.keyTweak && this._sigType !== "bip340") { + throw CoreKitError.default("key tweaking not supported for ed25519"); + } + + return this.sign_frost(data, opts?.keyTweak); } throw CoreKitError.default(`sign not supported for key type ${this.keyType}`); } @@ -802,7 +861,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw CoreKitError.factorInUseCannotBeDeleted("Cannot delete current active factor"); } - await this.tKey.deleteFactorPub({ factorKey: this.state.factorKey, deleteFactorPub: factorPub, authSignatures: this.signatures }); + const authSignatures = await this.getSessionSignatures(); + await this.tKey.deleteFactorPub({ factorKey: this.state.factorKey, deleteFactorPub: factorPub, authSignatures }); const factorPubHex = fpp.toSEC1(factorKeyCurve, true).toString("hex"); const allDesc = this.tKey.metadata.getShareDescription(); const keyDesc = allDesc[factorPubHex]; @@ -831,6 +891,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this.resetState(); await this.init({ handleRedirectResult: false, rehydrate: false }); + this.stateEmitter.emit("LOGOUT"); } public getUserInfo(): UserInfo { @@ -918,12 +979,9 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * * Exports the private key scalar for the current account index. * - * For keytype ed25519, consider using _UNSAFE_exportTssEd25519Seed. + * For signature type ed25519, consider using _UNSAFE_exportTssEd25519Seed. */ public async _UNSAFE_exportTssKey(): Promise { - if (this.keyType !== KeyType.secp256k1) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is secp256k1"); - } if (!this.state.factorKey) { throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss key."); } @@ -949,8 +1007,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { * flow has been used. */ public async _UNSAFE_exportTssEd25519Seed(): Promise { - if (this.keyType !== KeyType.ed25519) { - throw CoreKitError.default("Wrong KeyType. Method can only be used when KeyType is ed25519"); + if (this._sigType !== "ed25519") { + throw CoreKitError.default("Wrong signature type. Method can only be used when signature type is ed25519."); } if (!this.state.factorKey) throw CoreKitError.factorKeyNotPresent("factorKey not present in state when exporting tss ed25519 seed."); if (!this.state.signatures) throw CoreKitError.signaturesNotPresent("Signatures not present in state when exporting tss ed25519 seed."); @@ -971,6 +1029,62 @@ export class Web3AuthMPCCoreKit implements ICoreKit { this.state = { ...this.state, ...newState }; } + public async setupTkey(params?: { + providedImportKey?: string; + sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse; + userInfo?: UserInfo; + importingSFAKey?: boolean; + persistSessionSigs?: boolean; + }): Promise { + const { providedImportKey, sfaLoginResponse, userInfo, importingSFAKey, persistSessionSigs } = params; + if (importingSFAKey && !sfaLoginResponse) { + throw CoreKitError.default("SFA key registration requires SFA login response"); + } + const postBoxKey = this._getPostBoxKey(sfaLoginResponse); + this.torusSp.postboxKey = new BN(postBoxKey, "hex"); + this.updateState({ + postBoxKey, + postboxKeyNodeIndexes: sfaLoginResponse.nodesData?.nodeIndexes, + userInfo, + signatures: persistSessionSigs ? this.extractSessionSignatures(sfaLoginResponse.sessionData.sessionTokenData) : [], + }); + const sp = this.tkey.serviceProvider; + if (!sp) { + throw new Error("Oauth Service provider is missing in tkey"); + } + if (!sp?.verifierId) { + sp.verifierId = userInfo.verifierId; + } + if (!sp?.verifierName) { + sp.verifierName = userInfo.aggregateVerifier || userInfo.verifier; + } + + const existingUser = await this.isMetadataPresent(this.state.postBoxKey); + let importKey = providedImportKey; + if (!existingUser) { + if (!importKey && this.useClientGeneratedTSSKey) { + if (this.keyType === KeyType.ed25519) { + const k = generateEd25519Seed(); + importKey = k.toString("hex"); + } else if (this.keyType === KeyType.secp256k1) { + const k = secp256k1.genKeyPair().getPrivate(); + importKey = scalarBNToBufferSEC1(k).toString("hex"); + } else { + throw CoreKitError.default(`Unsupported key type and sig type combination: ${this.keyType}, ${this._sigType}`); + } + } + if (importingSFAKey && sfaLoginResponse && sfaLoginResponse.metadata.upgraded) { + throw CoreKitError.default("SFA key registration is not allowed for already upgraded users"); + } + await this.handleNewUser(importKey, importingSFAKey); + } else { + if (importKey) { + throw CoreKitError.tssKeyImportNotAllowed(); + } + await this.handleExistingUser(); + } + } + protected async atomicSync(f: () => Promise): Promise { this.atomicCallStackCounter += 1; @@ -1012,43 +1126,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return tssNonce; } - private async setupTkey( - providedImportKey?: string, - sfaLoginResponse?: TorusKey | TorusLoginResponse | TorusAggregateLoginResponse, - importingSFAKey?: boolean - ): Promise { - if (importingSFAKey && !sfaLoginResponse) { - throw CoreKitError.default("SFA key registration requires SFA login response"); - } - if (!this.state.postBoxKey) { - throw CoreKitError.userNotLoggedIn(); - } - const existingUser = await this.isMetadataPresent(this.state.postBoxKey); - let importKey = providedImportKey; - if (!existingUser) { - if (!importKey && this.useClientGeneratedTSSKey) { - if (this.keyType === KeyType.ed25519) { - const k = generateEd25519Seed(); - importKey = k.toString("hex"); - } else if (this.keyType === KeyType.secp256k1) { - const k = secp256k1.genKeyPair().getPrivate(); - importKey = scalarBNToBufferSEC1(k).toString("hex"); - } else { - throw CoreKitError.default("Unsupported key type"); - } - } - if (importingSFAKey && sfaLoginResponse && sfaLoginResponse.metadata.upgraded) { - throw CoreKitError.default("SFA key registration is not allowed for already upgraded users"); - } - await this.handleNewUser(importKey, importingSFAKey); - } else { - if (importKey) { - throw CoreKitError.tssKeyImportNotAllowed(); - } - await this.handleExistingUser(); - } - } - // mutation function private async handleNewUser(importTssKey?: string, isSfaKey?: boolean) { await this.atomicSync(async () => { @@ -1204,13 +1281,14 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (!postBoxKey || !factorKey || !tssShare || !tssPubKey || !userInfo) { throw CoreKitError.userNotLoggedIn(); } + const sessionSigs = this.state.signatures; const payload: SessionData = { postBoxKey, postboxKeyNodeIndexes: postboxKeyNodeIndexes || [], factorKey: factorKey?.toString("hex"), tssShareIndex: tssShareIndex as number, tssPubKey: Buffer.from(tssPubKey).toString("hex"), - signatures: this.signatures, + signatures: sessionSigs, userInfo, }; await this.sessionManager.createSession(payload); @@ -1271,11 +1349,11 @@ export class Web3AuthMPCCoreKit implements ICoreKit { if (this.tKey.metadata.factorPubs[this.tKey.tssTag].length >= MAX_FACTORS) { throw CoreKitError.maximumFactorsReached(`The maximum number of allowable factors (${MAX_FACTORS}) has been reached.`); } - + const authSignatures = await this.getSessionSignatures(); // Generate new share. await this.tkey.addFactorPub({ existingFactorKey: this.state.factorKey, - authSignatures: this.signatures, + authSignatures, newFactorPub, newTSSIndex: newFactorTSSIndex, refreshShares: this.state.tssShareIndex !== newFactorTSSIndex, // Refresh shares if we have a new factor key index. @@ -1357,7 +1435,7 @@ export class Web3AuthMPCCoreKit implements ICoreKit { return TorusUtils.getPostboxKey(result); } - private _getSignatures(sessionData: TorusKey["sessionData"]["sessionTokenData"]): string[] { + private extractSessionSignatures(sessionData: TorusKey["sessionData"]["sessionTokenData"]): string[] { // There is a check in torus.js which pushes undefined to session data in case // that particular node call fails. // and before returning we are not filtering out undefined vals in torus.js @@ -1411,9 +1489,8 @@ export class Web3AuthMPCCoreKit implements ICoreKit { } const isAlreadyPrecomputed = precomputedTssClient?.client && precomputedTssClient?.serverCoeffs; - const { client, serverCoeffs } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); + const { client, serverCoeffs, signatures } = isAlreadyPrecomputed ? precomputedTssClient : await this.precompute_secp256k1(); - const { signatures } = this; if (!signatures) { throw CoreKitError.signaturesNotPresent(); } @@ -1425,43 +1502,46 @@ export class Web3AuthMPCCoreKit implements ICoreKit { throw error; } // Retry with new client if precomputed client failed, this is to handle the case when precomputed session might have expired - const { client: newClient, serverCoeffs: newServerCoeffs } = await this.precompute_secp256k1(); + const { client: newClient, serverCoeffs: newServerCoeffs } = await this.precompute_secp256k1({ sessionSignatures: signatures }); const result = await executeSign(newClient, newServerCoeffs, data, signatures); return result; } } - private async sign_ed25519(data: Buffer, hashed: boolean = false): Promise { - if (hashed) { - throw CoreKitError.default("hashed data not supported for ed25519"); - } - - const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, "ed25519"); + private async sign_frost(data: Buffer, keyTweak?: BN): Promise { + const nodeDetails = fetchLocalConfig(this.options.web3AuthNetwork, this.keyType, this._sigType); if (!nodeDetails.torusNodeTSSEndpoints) { throw CoreKitError.default("could not fetch tss node endpoints"); } // Endpoints must end with backslash, but URLs returned by // `fetch-node-details` don't have it. - const ED25519_ENDPOINTS = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); + const serverEndpoints = nodeDetails.torusNodeTSSEndpoints.map((ep, i) => ({ index: nodeDetails.torusIndexes[i], url: `${ep}/` })); // Select endpoints and derive party indices. - const serverThreshold = Math.floor(ED25519_ENDPOINTS.length / 2) + 1; - const endpoints = sampleEndpoints(ED25519_ENDPOINTS, serverThreshold); + const serverThreshold = Math.floor(serverEndpoints.length / 2) + 1; + const endpoints = sampleEndpoints(serverEndpoints, serverThreshold); const serverXCoords = endpoints.map((x) => x.index); const clientXCoord = Math.max(...endpoints.map((ep) => ep.index)) + 1; // Derive share coefficients for flat hierarchy. - const ec = new Ed25519Curve(); + const ec = (() => { + if (this.keyType === KeyType.secp256k1) { + return new Secp256k1Curve(); + } else if (this.keyType === KeyType.ed25519) { + return new Ed25519Curve(); + } + throw CoreKitError.default(`key type ${this.keyType} not supported with FROST signing`); + })(); const { serverCoefficients, clientCoefficient } = deriveShareCoefficients(ec, serverXCoords, clientXCoord, this.state.tssShareIndex); // Get pub key. - const tssPubKey = await this.getPubKey(); + const tssPubKey = this.getPubKey(); const tssPubKeyPoint = ec.keyFromPublic(tssPubKey).getPublic(); // Get client key share and adjust by coefficient. - if (this.state.accountIndex !== 0) { + if (this._sigType === "ed25519" && this.state.accountIndex !== 0) { throw CoreKitError.default("Account index not supported for ed25519"); } const { tssShare } = await this.tKey.getTSSShare(this.state.factorKey); @@ -1477,17 +1557,19 @@ export class Web3AuthMPCCoreKit implements ICoreKit { const serverURLs = endpoints.map((x) => x.url); const pubKeyHex = ec.pointToBuffer(tssPubKeyPoint, Buffer).toString("hex"); const serverCoefficientsHex = serverCoefficients.map((c) => ec.scalarToBuffer(c, Buffer).toString("hex")); - const signature = await signEd25519( - this.wasmLib as FrostWasmLib, + const authSignatures = await this.getSessionSignatures(); + const signature = await signFrost( + this.wasmLib as FrostWasmLibEd25519 | FrostWasmLibBip340, session, - this.signatures, + authSignatures, serverXCoords, serverURLs, clientXCoord, clientShareAdjustedHex, pubKeyHex, data, - serverCoefficientsHex + serverCoefficientsHex, + keyTweak?.toString("hex") ); log.info(`signature: ${signature}`); @@ -1496,11 +1578,6 @@ export class Web3AuthMPCCoreKit implements ICoreKit { private async loadTssWasm() { if (this.wasmLib) return this.wasmLib; - if (typeof (this._tssLib as V4TSSLibType).load === "function") { - // dont wait for wasm to be loaded, we can reload it during signing if not loaded - return (this._tssLib as V4TSSLibType).load(); - } else if ((this._tssLib as V3TSSLibType).lib) { - return (this._tssLib as V3TSSLibType).lib as DKLSWasmLib | FrostWasmLib; - } + return this._tssLib.load(); } } diff --git a/src/plugins/DefaultSessionSigGenerator.ts b/src/plugins/DefaultSessionSigGenerator.ts new file mode 100644 index 00000000..a0e40894 --- /dev/null +++ b/src/plugins/DefaultSessionSigGenerator.ts @@ -0,0 +1,14 @@ +import { IMPCContext } from "../interfaces"; +import { ISessionSigGenerator } from "./ISessionSigGenerator"; + +export class DefaultSessionSigGeneratorPlugin implements ISessionSigGenerator { + private context: IMPCContext; + + constructor(readonly mpcCorekitContext: IMPCContext) { + this.context = mpcCorekitContext; + } + + async getSessionSigs() { + return this.context.state.signatures || []; + } +} diff --git a/src/plugins/ISessionSigGenerator.ts b/src/plugins/ISessionSigGenerator.ts new file mode 100644 index 00000000..efa40c4f --- /dev/null +++ b/src/plugins/ISessionSigGenerator.ts @@ -0,0 +1,3 @@ +export interface ISessionSigGenerator { + getSessionSigs: () => Promise; +} diff --git a/src/plugins/index.ts b/src/plugins/index.ts new file mode 100644 index 00000000..789c86a3 --- /dev/null +++ b/src/plugins/index.ts @@ -0,0 +1,2 @@ +export * from "./DefaultSessionSigGenerator"; +export * from "./ISessionSigGenerator"; diff --git a/src/utils.ts b/src/utils.ts index 16139d1e..43179a35 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -201,7 +201,7 @@ export function makeEthereumSigner(kit: CoreKitSigner): EthereumSigner { } return { sign: async (msgHash: Buffer) => { - const sig = await kit.sign(msgHash, true); + const sig = await kit.sign(msgHash, { hashed: true }); return sigToRSV(sig); }, getPublic: async () => { diff --git a/tests/backwardCompatible.spec.ts b/tests/backwardCompatible.spec.ts index c2468de5..5c244c6d 100644 --- a/tests/backwardCompatible.spec.ts +++ b/tests/backwardCompatible.spec.ts @@ -119,7 +119,7 @@ variable.forEach((testVariable) => { const msg = "hello world"; const msgBuffer = Buffer.from(msg); const msgHash = keccak256(msgBuffer); - const signature = sigToRSV(await coreKitInstance.sign(msgHash, true)); + const signature = sigToRSV(await coreKitInstance.sign(msgHash, { hashed: true } )); const secp256k1 = new EC("secp256k1"); const pubkey = secp256k1.recoverPubKey(msgHash, signature, signature.v) as EllipticPoint; diff --git a/tests/bip340.spec.ts b/tests/bip340.spec.ts new file mode 100644 index 00000000..298d1009 --- /dev/null +++ b/tests/bip340.spec.ts @@ -0,0 +1,153 @@ +import assert from "node:assert"; +import test from "node:test"; + +import { EllipticPoint } from "@tkey/common-types"; +import { UX_MODE_TYPE } from "@toruslabs/customauth"; +import { tssLib } from "@toruslabs/tss-frost-lib-bip340"; +import BN from "bn.js"; +import { schnorr as bip340 } from '@noble/curves/secp256k1'; + +import { AsyncStorage, COREKIT_STATUS, MemoryStorage, WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit } from "../src"; +import { bufferToElliptic, criticalResetAccount, mockLogin, mockLogin2 } from "./setup"; + +type TestVariable = { + web3AuthNetwork: WEB3AUTH_NETWORK_TYPE; + uxMode: UX_MODE_TYPE | "nodejs"; + manualSync?: boolean; + email: string; +}; + +const defaultTestEmail = "testEmailForLoginBip340"; +const variable: TestVariable[] = [ + { web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET, uxMode: "nodejs", email: defaultTestEmail }, + // { web3AuthNetwork: WEB3AUTH_NETWORK.MAINNET, uxMode: UX_MODE.REDIRECT, email: defaultTestEmail }, + + { web3AuthNetwork: WEB3AUTH_NETWORK.DEVNET, uxMode: "nodejs", manualSync: true, email: defaultTestEmail }, + // { web3AuthNetwork: WEB3AUTH_NETWORK.MAINNET, uxMode: UX_MODE.REDIRECT, manualSync: true, email: defaultTestEmail }, +]; + +const checkLogin = async (coreKitInstance: Web3AuthMPCCoreKit, accountIndex = 0) => { + const keyDetails = coreKitInstance.getKeyDetails(); + assert.strictEqual(coreKitInstance.status, COREKIT_STATUS.LOGGED_IN); + assert.strictEqual(keyDetails.requiredFactors, 0); + const factorkey = coreKitInstance.getCurrentFactorKey(); + await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex"), { + accountIndex, + }); +}; + +const storageInstance = new MemoryStorage(); + +variable.forEach((testVariable) => { + const { web3AuthNetwork, uxMode, manualSync, email } = testVariable; + const newCoreKitInstance = () => + new Web3AuthMPCCoreKit({ + web3AuthClientId: "torus-key-test", + web3AuthNetwork, + baseUrl: "http://localhost:3000", + uxMode, + tssLib, + storage: storageInstance, + manualSync, + }); + + async function resetAccount() { + const resetInstance = newCoreKitInstance(); + const { idToken, parsedToken } = await mockLogin(email); + await resetInstance.init({ handleRedirectResult: false, rehydrate: false }); + await resetInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + await criticalResetAccount(resetInstance); + await new AsyncStorage(resetInstance._storageKey, storageInstance).resetStore(); + } + + const testNameSuffix = JSON.stringify(testVariable); + + let checkPubKey: EllipticPoint; + let checkTssShare: BN; + + test(`#Login Test with JWT + logout: ${testNameSuffix}`, async (t) => { + await resetAccount(); + await t.test("#Login", async function () { + const coreKitInstance = newCoreKitInstance(); + + // mocklogin + const { idToken, parsedToken } = await mockLogin(email); + await coreKitInstance.init({ handleRedirectResult: false }); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + // get key details + await checkLogin(coreKitInstance); + + checkPubKey = bufferToElliptic(coreKitInstance.getPubKey(), coreKitInstance.tKey.tssCurve); + const factorkey = coreKitInstance.getCurrentFactorKey(); + const { tssShare } = await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex"), { + threshold: 0, + }); + checkTssShare = tssShare; + + if (manualSync) { + await coreKitInstance.commitChanges(); + } + // check whether the public key and tss share is same as old sdks + }); + + await t.test("#relogin ", async function () { + const coreKitInstance = newCoreKitInstance(); + // rehydrate + await coreKitInstance.init({ handleRedirectResult: false }); + await checkLogin(coreKitInstance); + + // logout + await coreKitInstance.logout(); + + // rehydrate should fail + await coreKitInstance.init({ + rehydrate: false, + handleRedirectResult: false, + }); + assert.strictEqual(coreKitInstance.status, COREKIT_STATUS.INITIALIZED); + assert.throws(() => coreKitInstance.getCurrentFactorKey()); + + // relogin + const { idToken, parsedToken } = await mockLogin(email); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: parsedToken.email, + idToken, + }); + + // get key details + await checkLogin(coreKitInstance); + const newPubKey = bufferToElliptic(coreKitInstance.getPubKey(), coreKitInstance.tKey.tssCurve); + const factorkey = coreKitInstance.getCurrentFactorKey(); + const { tssShare: newTssShare } = await coreKitInstance.tKey.getTSSShare(new BN(factorkey.factorKey, "hex")); + assert(checkPubKey.eq(newPubKey)); + assert(checkTssShare.eq(newTssShare)); + }); + + await t.test("#able to sign", async function () { + const coreKitInstance = newCoreKitInstance(); + await coreKitInstance.init({ handleRedirectResult: false, rehydrate: false }); + const localToken = await mockLogin2(email); + await coreKitInstance.loginWithJWT({ + verifier: "torus-test-health", + verifierId: email, + idToken: localToken.idToken, + }); + const msg = "hello world"; + const msgBuffer = Buffer.from(msg); + + const signature = await coreKitInstance.sign(msgBuffer); + const pk = coreKitInstance.getPubKeyBip340(); + const valid = bip340.verify(signature, msgBuffer, pk); + assert(valid); + }); + }); +}); diff --git a/tests/login.spec.ts b/tests/login.spec.ts index 56a48512..33a45ef3 100644 --- a/tests/login.spec.ts +++ b/tests/login.spec.ts @@ -157,7 +157,7 @@ variable.forEach((testVariable) => { const secp256k1 = new EC("secp256k1"); // Sign hash. - const signature = sigToRSV(await coreKitInstance.sign(msgHash, true)); + const signature = sigToRSV(await coreKitInstance.sign(msgHash, { hashed: true })); const pubkey = secp256k1.recoverPubKey(msgHash, signature, signature.v) as EllipticPoint; const publicKeyPoint = bufferToElliptic(coreKitInstance.getPubKey()); assert(pubkey.eq(publicKeyPoint)); @@ -186,7 +186,7 @@ variable.forEach((testVariable) => { const msg = "hello world 1"; const msgBuffer = Buffer.from(msg); const msgHash = keccak256(msgBuffer); - const signature1 = sigToRSV(await coreKitInstance.sign(msgHash, true)); + const signature1 = sigToRSV(await coreKitInstance.sign(msgHash, { hashed: true })); const pubkeyIndex0 = secp256k1.recoverPubKey(msgHash, signature1, signature1.v); const publicKeyPoint0 = bufferToElliptic(coreKitInstance.getPubKey()); @@ -198,7 +198,7 @@ variable.forEach((testVariable) => { const msgBuffer1 = Buffer.from(msg1); const msgHash1 = keccak256(msgBuffer1); - const signature2 = sigToRSV(await coreKitInstance.sign(msgHash1, true)); + const signature2 = sigToRSV(await coreKitInstance.sign(msgHash1, { hashed: true })); const pubkeyIndex1 = secp256k1.recoverPubKey(msgHash1, signature2, signature2.v) as EllipticPoint; const publicKeyPoint1 = bufferToElliptic(coreKitInstance.getPubKey()); @@ -211,7 +211,7 @@ variable.forEach((testVariable) => { const msg2 = "hello world 3"; const msgBuffer2 = Buffer.from(msg2); const msgHash2 = keccak256(msgBuffer2); - const signature3 = sigToRSV(await coreKitInstance.sign(msgHash2, true)); + const signature3 = sigToRSV(await coreKitInstance.sign(msgHash2, { hashed: true })); const pubkeyIndex2 = secp256k1.recoverPubKey(msgHash2, signature3, signature3.v) as EllipticPoint; const publicKeyPoint2 = bufferToElliptic(coreKitInstance.getPubKey()); diff --git a/tests/sessionTime.spec.ts b/tests/sessionTime.spec.ts index 685fb2a7..f649fbdc 100644 --- a/tests/sessionTime.spec.ts +++ b/tests/sessionTime.spec.ts @@ -57,25 +57,25 @@ const variable: TestVariable[] = [ }, ]; -const storageInstance = new MemoryStorage(); variable.forEach(async (testVariable) => { const { web3AuthNetwork, uxMode, manualSync, email, web3ClientID: web3AuthClientId, sessionTime, disableSessionManager } = testVariable; await test(`#Variable SessionTime test : ${JSON.stringify({ sessionTime: testVariable.sessionTime })} - disableSessionManager: ${disableSessionManager} client_id: ${web3AuthClientId}`, async (t) => { - const coreKitInstance = new Web3AuthMPCCoreKit({ - web3AuthClientId, - web3AuthNetwork, - baseUrl: "http://localhost:3000", - uxMode, - tssLib, - storage: storageInstance, - manualSync, - sessionTime, - disableSessionManager, - }); + let coreKitInstance : Web3AuthMPCCoreKit; async function beforeTest() { + coreKitInstance = new Web3AuthMPCCoreKit({ + web3AuthClientId, + web3AuthNetwork, + baseUrl: "http://localhost:3000", + uxMode, + tssLib, + storage: new MemoryStorage(), + manualSync, + sessionTime, + disableSessionManager, + }); if (coreKitInstance.status === COREKIT_STATUS.INITIALIZED) await criticalResetAccount(coreKitInstance); } @@ -110,7 +110,7 @@ variable.forEach(async (testVariable) => { return; } - coreKitInstance.signatures.forEach((sig) => { + (await coreKitInstance.getSessionSignatures()).forEach((sig) => { const parsedSig = JSON.parse(sig); const parsedSigData = JSON.parse(atob(parsedSig.data)); @@ -127,7 +127,5 @@ variable.forEach(async (testVariable) => { assert.notEqual(coreKitInstance.sessionId , undefined); } }); - - }); }); diff --git a/tests/setup.ts b/tests/setup.ts index ab677bff..8b6adc5f 100644 --- a/tests/setup.ts +++ b/tests/setup.ts @@ -3,6 +3,7 @@ import { tssLib } from "@toruslabs/tss-dkls-lib"; import BN from "bn.js"; import jwt, { Algorithm } from "jsonwebtoken"; import { tssLib as tssLibDKLS } from "@toruslabs/tss-dkls-lib"; +import { TorusKey } from "@toruslabs/torus.js"; import { IAsyncStorage, IStorage, parseToken, TssLibType, WEB3AUTH_NETWORK_TYPE, Web3AuthMPCCoreKit } from "../src"; @@ -139,7 +140,7 @@ export const loginWithSFA = async ({ storageInstance: IStorage | IAsyncStorage; tssLib?: TssLibType; login?: LoginFunc; -}) => { +}): Promise => { const instance = new Web3AuthMPCCoreKit({ web3AuthClientId: "torus-key-test", web3AuthNetwork: network,