From f97e7202e014198e6910a514c5b371b56920d5a9 Mon Sep 17 00:00:00 2001 From: Shane Earley Date: Wed, 26 Jul 2023 11:47:43 -0400 Subject: [PATCH] Add ethdo cli for standard keygen (incomplete) --- common/data/package.json | 6 +- common/helpers/package.json | 5 +- common/speculos/package.json | 2 +- common/ssv/package.json | 5 +- common/uniswap/package.json | 5 +- common/wallets/package.json | 4 +- package-lock.json | 1791 ++++++++++++----- services/oracle/package.json | 2 + services/oracle/scripts/dev.ts | 36 +- services/oracle/src/index.ts | 38 +- services/oracle/src/interfaces/CliInput.ts | 5 + .../oracle/src/interfaces/DepositDataInput.ts | 2 - .../oracle/src/interfaces/EthdoOptions.ts | 3 + .../oracle/src/interfaces/HandlerInput.ts | 2 +- .../{KeychainOptions.ts => KeysOptions.ts} | 2 +- services/oracle/src/providers/cli.ts | 18 + services/oracle/src/providers/config.ts | 21 +- services/oracle/src/providers/dkg.ts | 3 + services/oracle/src/providers/ethdo.ts | 14 +- services/oracle/src/providers/events.ts | 47 +- services/oracle/src/providers/handlers.ts | 77 +- services/oracle/src/providers/keychain.ts | 60 - 22 files changed, 1499 insertions(+), 649 deletions(-) create mode 100644 services/oracle/src/interfaces/CliInput.ts create mode 100644 services/oracle/src/interfaces/EthdoOptions.ts rename services/oracle/src/interfaces/{KeychainOptions.ts => KeysOptions.ts} (66%) create mode 100644 services/oracle/src/providers/cli.ts delete mode 100644 services/oracle/src/providers/keychain.ts diff --git a/common/data/package.json b/common/data/package.json index 4044f5116..e26779c4a 100644 --- a/common/data/package.json +++ b/common/data/package.json @@ -4,7 +4,7 @@ "version": "1.0.0", "main": "src/index.ts", "scripts": { - "build": "echo '@casimir/data build not specified. Disregard this warning and any listed errors above if @casimir/types is not needed for the current project build.' && exit 0", + "build": "echo '@casimir/data build not specified. Disregard this warning and any listed errors above if @casimir/data is not needed for the current project build.' && exit 0", "configure:python": "poetry install && poetry run ipython kernel install --user --name=casimir-data", "test": "echo \"Error: no test specified\" && exit 1" }, @@ -13,8 +13,6 @@ "pg": "^8.10.0" }, "devDependencies": { - "@types/node": "^17.0.38", - "rimraf": "^4.4.0", - "ts-node": "^10.9.1" + "@types/node": "^17.0.38" } } \ No newline at end of file diff --git a/common/helpers/package.json b/common/helpers/package.json index 76502f285..c9b5606dd 100644 --- a/common/helpers/package.json +++ b/common/helpers/package.json @@ -3,7 +3,7 @@ "private": true, "main": "src/index.ts", "scripts": { - "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "build": "echo '@casimir/helpers build not specified. Disregard this warning and any listed errors above if @casimir/helpers is not needed for the current project build.' && exit 0", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { @@ -12,7 +12,6 @@ "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" + "@types/node": "^17.0.38" } } diff --git a/common/speculos/package.json b/common/speculos/package.json index ca69c674b..acfa4c697 100644 --- a/common/speculos/package.json +++ b/common/speculos/package.json @@ -3,7 +3,7 @@ "private":"true", "main": "src/index.ts", "scripts": { - "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "build": "echo '@casimir/speculos build not specified. Disregard this warning and any listed errors above if @casimir/speculos is not needed for the current project build.' && exit 0", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { diff --git a/common/ssv/package.json b/common/ssv/package.json index 3abdf84fe..d0bce012e 100644 --- a/common/ssv/package.json +++ b/common/ssv/package.json @@ -3,14 +3,13 @@ "private": "true", "main": "src/index.ts", "scripts": { - "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "build": "echo '@casimir/ssv build not specified. Disregard this warning and any listed errors above if @casimir/ssv is not needed for the current project build.' && exit 0", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" + "@types/node": "^17.0.38" } } diff --git a/common/uniswap/package.json b/common/uniswap/package.json index 781c65af0..610d816e9 100644 --- a/common/uniswap/package.json +++ b/common/uniswap/package.json @@ -3,14 +3,13 @@ "private": "true", "main": "src/index.ts", "scripts": { - "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "build": "echo '@casimir/uniswap build not specified. Disregard this warning and any listed errors above if @casimir/uniswap is not needed for the current project build.' && exit 0", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" + "@types/node": "^17.0.38" } } diff --git a/common/wallets/package.json b/common/wallets/package.json index 37c47ae61..e35b0ca0d 100644 --- a/common/wallets/package.json +++ b/common/wallets/package.json @@ -3,12 +3,12 @@ "private": "true", "main": "src/index.ts", "scripts": { - "build": "esbuild src/index.ts --bundle --minify --sourcemap --platform=node --target=esnext --outfile=dist/index.js", + "build": "echo '@casimir/wallets build not specified. Disregard this warning and any listed errors above if @casimir/wallets is not needed for the current project build.' && exit 0", "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "@ledgerhq/hw-app-btc": "^9.1.2", - "@ledgerhq/hw-app-eth": "^6.30.4", + "@ledgerhq/hw-app-eth": "^6.34.1", "@ledgerhq/hw-transport": "^6.27.10", "@ledgerhq/hw-transport-webusb": "^6.27.10", "@trezor/connect-web": "^9.0.3", diff --git a/package-lock.json b/package-lock.json index 9d9fcf76a..493a7d010 100644 --- a/package-lock.json +++ b/package-lock.json @@ -124,27 +124,7 @@ "pg": "^8.10.0" }, "devDependencies": { - "@types/node": "^17.0.38", - "rimraf": "^4.4.0", - "ts-node": "^10.9.1" - } - }, - "common/data/node_modules/rimraf": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.4.1.tgz", - "integrity": "sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==", - "dev": true, - "dependencies": { - "glob": "^9.2.0" - }, - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@types/node": "^17.0.38" } }, "common/helpers": { @@ -155,45 +135,7 @@ "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" - } - }, - "common/helpers/node_modules/esbuild": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.18", - "@esbuild/linux-loong64": "0.15.18", - "esbuild-android-64": "0.15.18", - "esbuild-android-arm64": "0.15.18", - "esbuild-darwin-64": "0.15.18", - "esbuild-darwin-arm64": "0.15.18", - "esbuild-freebsd-64": "0.15.18", - "esbuild-freebsd-arm64": "0.15.18", - "esbuild-linux-32": "0.15.18", - "esbuild-linux-64": "0.15.18", - "esbuild-linux-arm": "0.15.18", - "esbuild-linux-arm64": "0.15.18", - "esbuild-linux-mips64le": "0.15.18", - "esbuild-linux-ppc64le": "0.15.18", - "esbuild-linux-riscv64": "0.15.18", - "esbuild-linux-s390x": "0.15.18", - "esbuild-netbsd-64": "0.15.18", - "esbuild-openbsd-64": "0.15.18", - "esbuild-sunos-64": "0.15.18", - "esbuild-windows-32": "0.15.18", - "esbuild-windows-64": "0.15.18", - "esbuild-windows-arm64": "0.15.18" + "@types/node": "^17.0.38" } }, "common/speculos": { @@ -208,45 +150,7 @@ "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" - } - }, - "common/ssv/node_modules/esbuild": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.18", - "@esbuild/linux-loong64": "0.15.18", - "esbuild-android-64": "0.15.18", - "esbuild-android-arm64": "0.15.18", - "esbuild-darwin-64": "0.15.18", - "esbuild-darwin-arm64": "0.15.18", - "esbuild-freebsd-64": "0.15.18", - "esbuild-freebsd-arm64": "0.15.18", - "esbuild-linux-32": "0.15.18", - "esbuild-linux-64": "0.15.18", - "esbuild-linux-arm": "0.15.18", - "esbuild-linux-arm64": "0.15.18", - "esbuild-linux-mips64le": "0.15.18", - "esbuild-linux-ppc64le": "0.15.18", - "esbuild-linux-riscv64": "0.15.18", - "esbuild-linux-s390x": "0.15.18", - "esbuild-netbsd-64": "0.15.18", - "esbuild-openbsd-64": "0.15.18", - "esbuild-sunos-64": "0.15.18", - "esbuild-windows-32": "0.15.18", - "esbuild-windows-64": "0.15.18", - "esbuild-windows-arm64": "0.15.18" + "@types/node": "^17.0.38" } }, "common/types": { @@ -258,52 +162,14 @@ "ethers": "^5.7.2" }, "devDependencies": { - "@types/node": "^17.0.38", - "esbuild": "^0.15.9" - } - }, - "common/uniswap/node_modules/esbuild": { - "version": "0.15.18", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", - "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.15.18", - "@esbuild/linux-loong64": "0.15.18", - "esbuild-android-64": "0.15.18", - "esbuild-android-arm64": "0.15.18", - "esbuild-darwin-64": "0.15.18", - "esbuild-darwin-arm64": "0.15.18", - "esbuild-freebsd-64": "0.15.18", - "esbuild-freebsd-arm64": "0.15.18", - "esbuild-linux-32": "0.15.18", - "esbuild-linux-64": "0.15.18", - "esbuild-linux-arm": "0.15.18", - "esbuild-linux-arm64": "0.15.18", - "esbuild-linux-mips64le": "0.15.18", - "esbuild-linux-ppc64le": "0.15.18", - "esbuild-linux-riscv64": "0.15.18", - "esbuild-linux-s390x": "0.15.18", - "esbuild-netbsd-64": "0.15.18", - "esbuild-openbsd-64": "0.15.18", - "esbuild-sunos-64": "0.15.18", - "esbuild-windows-32": "0.15.18", - "esbuild-windows-64": "0.15.18", - "esbuild-windows-arm64": "0.15.18" + "@types/node": "^17.0.38" } }, "common/wallets": { "name": "@casimir/wallets", "dependencies": { "@ledgerhq/hw-app-btc": "^9.1.2", - "@ledgerhq/hw-app-eth": "^6.30.4", + "@ledgerhq/hw-app-eth": "^6.34.1", "@ledgerhq/hw-transport": "^6.27.10", "@ledgerhq/hw-transport-webusb": "^6.27.10", "@trezor/connect-web": "^9.0.3", @@ -1829,6 +1695,56 @@ "integrity": "sha512-hldFFYuf49ed7DAakWVXSJODuq3pzJEguD8tQ7h+sGkM18vja+OFoJI9krnGmgzyuZC2ETX0NOIcCTy31v2Mtg==", "dev": true }, + "node_modules/@chainsafe/bls": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@chainsafe/bls/-/bls-7.1.2.tgz", + "integrity": "sha512-eVFxfUpKJmuuu04vEqmCtUuV9jHvVssc2Kz0pUGCSUGsKdr0UAu3jOpkviqLXgfpip+N0ZHxoLbCGqJhXB5TXQ==", + "dependencies": { + "@chainsafe/bls-keygen": "^0.4.0", + "bls-eth-wasm": "^0.4.8", + "randombytes": "^2.1.0" + }, + "engines": { + "node": ">=14.8.0" + }, + "peerDependencies": { + "@chainsafe/blst": "^0.2.4" + }, + "peerDependenciesMeta": { + "@chainsafe/blst": { + "optional": true + } + } + }, + "node_modules/@chainsafe/bls-hd-key": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@chainsafe/bls-hd-key/-/bls-hd-key-0.3.0.tgz", + "integrity": "sha512-LsYYnfBEEmqGFPDm8hQN3Kc+v9wPFnhn+CToD403KEynUiUSHKLAf5B6UCY5eooShDOcaGCUgAUhIw1CmpEf3Q==", + "dependencies": { + "@noble/hashes": "^1.0.0" + } + }, + "node_modules/@chainsafe/bls-keygen": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@chainsafe/bls-keygen/-/bls-keygen-0.4.0.tgz", + "integrity": "sha512-wqtuj4G/sWpIugJW1mb/nSTwcTuZKqB3DS3ANUIOn7pva8EB6LfxgIL34o4qk3lti/8Mdxqtqc2n4xRszrNdzA==", + "dependencies": { + "@chainsafe/bls-hd-key": "^0.3.0", + "@noble/hashes": "^1.0.0", + "@scure/bip39": "^1.0.0" + } + }, + "node_modules/@chainsafe/blst": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@chainsafe/blst/-/blst-0.2.9.tgz", + "integrity": "sha512-6MXBUy5Co6k6V9Bv0EC5YrHD7kwWIpzwBO4yCqurLw//Zm3cUmN6DohuYuEGcS4QMNEswa/cXqzZLf+LFBJPiw==", + "hasInstallScript": true, + "dependencies": { + "@types/tar": "^6.1.4", + "node-fetch": "^2.6.1", + "node-gyp": "^8.4.0" + } + }, "node_modules/@chainsafe/persistent-merkle-tree": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/@chainsafe/persistent-merkle-tree/-/persistent-merkle-tree-0.4.2.tgz", @@ -3061,6 +2977,11 @@ "@ethersproject/strings": "^5.7.0" } }, + "node_modules/@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + }, "node_modules/@heroicons/vue": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@heroicons/vue/-/vue-1.0.6.tgz", @@ -3568,9 +3489,9 @@ "integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw==" }, "node_modules/@ledgerhq/cryptoassets": { - "version": "9.10.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-9.10.0.tgz", - "integrity": "sha512-wkhHR8x4yMLHEa/oINIQYJ0iPyJJXZiOT7hVGzMAMVGrCR40Q9rQ1SHHYNl2vjQSS4xvhxePwfq7hWXuLUTX6Q==", + "version": "9.11.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-9.11.0.tgz", + "integrity": "sha512-CdA5CQMtHRcZ4O8epJ4CsJgauCas+W5b2mQY/mAtJ1kg03FC8XiBHfuAtGpgH5EK82JZqYzmGXGdvcthVLdCeQ==", "dependencies": { "invariant": "2" } @@ -3603,14 +3524,14 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@ledgerhq/domain-service": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/@ledgerhq/domain-service/-/domain-service-1.1.6.tgz", - "integrity": "sha512-0k6UsBJk8rKm8hWiKBmFmGxeiFl2m7Y6Pwjp6dyB/ccWcGVESXPN7GtxDDp45n8bFALgHwiRU+W/t5w8JeYe+w==", + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@ledgerhq/domain-service/-/domain-service-1.1.7.tgz", + "integrity": "sha512-QlJEh7GrVTJpiBRD9oAJsDISzLppBpIqL90a24J1G3F7qS1mNGpPtczUG7uRJDMZk/elINA1FjD4peMdkvg0pA==", "dependencies": { - "@ledgerhq/cryptoassets": "^9.10.0", + "@ledgerhq/cryptoassets": "^9.11.0", "@ledgerhq/errors": "^6.13.0", "@ledgerhq/logs": "^6.10.1", - "@ledgerhq/types-live": "^6.37.0", + "@ledgerhq/types-live": "^6.38.0", "axios": "^1.3.4", "eip55": "^2.1.1", "react": "^17.0.2", @@ -3623,13 +3544,13 @@ "integrity": "sha512-cMFNX2AN6Gdj4RVIizI/7vWb+JYRu5na0rQSjybf7xGW5MSVdFVRcOg90VvqnDRsNfgFBbJzhpf7o4D7S3yFgg==" }, "node_modules/@ledgerhq/evm-tools": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@ledgerhq/evm-tools/-/evm-tools-1.0.1.tgz", - "integrity": "sha512-R/6fHHpkqBC5sDlQ7X+rmCG517UEuz41omlmkxrh5ugTOYOrrl2E/+Xp2jc4crJArpFR92oMIjw+jMvjSolG7g==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@ledgerhq/evm-tools/-/evm-tools-1.0.2.tgz", + "integrity": "sha512-aREqM+AU9PwMqb5Zet3UEAX029rn7BE0ovlEITBeXQf1MvE6CLbxyvNJgF341weQY+s7WyR8thNOjUMyp5iHWw==", "dependencies": { - "@ledgerhq/cryptoassets": "^9.10.0", - "@ledgerhq/live-env": "^0.4.0", - "@ledgerhq/live-network": "^1.1.3", + "@ledgerhq/cryptoassets": "^9.11.0", + "@ledgerhq/live-env": "^0.4.1", + "@ledgerhq/live-network": "^1.1.4", "crypto-js": "4.1.1", "ethers": "5.7.2" } @@ -3654,20 +3575,20 @@ } }, "node_modules/@ledgerhq/hw-app-eth": { - "version": "6.34.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.34.0.tgz", - "integrity": "sha512-XaucfpnQUncYguR+IZFc8t55aK/ge8rvfs+vACarTB3k1luWG5atzMPdLqWPOI2GFrApT1Cg1gPxo0+KVG6CVA==", + "version": "6.34.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.34.1.tgz", + "integrity": "sha512-u19WrU0xDiySKc4h19/MnG+PrErIv3XWQ2IaMqfVdXD8Nfvb4I/41o7xUzdvcWu60pYzLYfvtQpbOsx7RncJBg==", "dependencies": { "@ethersproject/abi": "^5.5.0", "@ethersproject/rlp": "^5.5.0", - "@ledgerhq/cryptoassets": "^9.10.0", - "@ledgerhq/domain-service": "^1.1.6", + "@ledgerhq/cryptoassets": "^9.11.0", + "@ledgerhq/domain-service": "^1.1.7", "@ledgerhq/errors": "^6.13.0", - "@ledgerhq/evm-tools": "^1.0.1", + "@ledgerhq/evm-tools": "^1.0.2", "@ledgerhq/hw-transport": "^6.28.6", "@ledgerhq/hw-transport-mocker": "^6.27.17", "@ledgerhq/logs": "^6.10.1", - "@ledgerhq/types-live": "^6.37.0", + "@ledgerhq/types-live": "^6.38.0", "axios": "^1.3.4", "bignumber.js": "^9.1.0" } @@ -3703,9 +3624,9 @@ } }, "node_modules/@ledgerhq/live-env": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/live-env/-/live-env-0.4.0.tgz", - "integrity": "sha512-vWceXcs+knV80hWwPhNbWS2iMzlEczOecK9DpR/JGQw3Vf/M1ezshTZB6HTv5WuiVPk+PZwMkKAKKjzBSyPUjg==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@ledgerhq/live-env/-/live-env-0.4.1.tgz", + "integrity": "sha512-nX3G70bWbTEIjdQGp/4Q130wlqONTZCPWrvjf+IYLz+KW8ZqFaPUFrVPYOkEoa4l/u8rfYtHMVVLM4jLdnTUsQ==", "dependencies": { "lodash": "^4.17.21", "rxjs": "^6.6.7", @@ -3729,12 +3650,12 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/@ledgerhq/live-network": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@ledgerhq/live-network/-/live-network-1.1.3.tgz", - "integrity": "sha512-E7SFXpru3ij9HRJutQox1qnTYCkirmaGNBccTSpfrk/BMIAuDuKfomVKBNJ2qQRD8SS/cTMUOmf86//I8ozH3g==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@ledgerhq/live-network/-/live-network-1.1.4.tgz", + "integrity": "sha512-Cz3d2uDjNeivc9TRU2OeGVAa1tdbWd13cDGOyelw4yHKyU5J9PX3bxXvgVW3Z+G8R79YwIol3hOdLBb+2PEYSQ==", "dependencies": { "@ledgerhq/errors": "^6.13.0", - "@ledgerhq/live-env": "^0.4.0", + "@ledgerhq/live-env": "^0.4.1", "@ledgerhq/live-promise": "^0.0.1", "@ledgerhq/logs": "^6.10.1", "@types/node": "^20.2.5", @@ -3778,9 +3699,9 @@ "integrity": "sha512-z+ILK8Q3y+nfUl43ctCPuR4Y2bIxk/ooCQFwZxhtci1EhAtMDzMAx2W25qx8G1PPL9UUOdnUax19+F0OjXoj4w==" }, "node_modules/@ledgerhq/types-live": { - "version": "6.37.0", - "resolved": "https://registry.npmjs.org/@ledgerhq/types-live/-/types-live-6.37.0.tgz", - "integrity": "sha512-cEq4Wt5RpFN5rMCVuyv4HmkBV4W3/CQyitQq+3ebjFm/rTb3gAIiQjPPRwT6C9TDCXr5KYqSM9A1Mho38HItZg==", + "version": "6.38.0", + "resolved": "https://registry.npmjs.org/@ledgerhq/types-live/-/types-live-6.38.0.tgz", + "integrity": "sha512-oaosE1VSjzQOTC/YhPs2uwGh3ZWB2jGSrEUfRgmPSDPUqMeULoqfzvultpX3Dyp1SxS1J16QDf3y4kiz1iv78w==", "dependencies": { "bignumber.js": "^9.1.0", "rxjs": "6" @@ -4476,6 +4397,39 @@ "node": ">=4" } }, + "node_modules/@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "dependencies": { + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" + } + }, + "node_modules/@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@npmcli/move-file/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@octokit/auth-token": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", @@ -4896,7 +4850,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "dev": true, "funding": [ { "type": "individual", @@ -4937,7 +4890,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.1.tgz", "integrity": "sha512-t+wDck2rVkh65Hmv280fYdVdY25J9YeEUIgn2LG1WM6gxFkGzcksoDiUkWVpVp3Oex9xGC68JU2dSbUfwZ2jPg==", - "dev": true, "funding": [ { "type": "individual", @@ -4953,7 +4905,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.2.0.tgz", "integrity": "sha512-FZfhjEDbT5GRswV3C6uvLPHMiVD6lQBmpoX5+eSiPaMTXte/IKqI5dykDxzZB/WBeK/CDuQRBWarPdi3FNY2zQ==", - "dev": true, "funding": [ { "type": "individual", @@ -5145,11 +5096,22 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.0.2.tgz", - "integrity": "sha512-tb2h0b+JvMee+eAxTmhnyqyNk51UXIK949HnE14lFeezKsVJTB30maan+CO2IMwnig2wVYQH84B5qk6ylmKCuA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-1.0.3.tgz", + "integrity": "sha512-Jg97V3siJM0Jg96jSOkZfq0sjuT83m4lwTb/VdeieFln7bcf8mmkmo2RelzxDG9eMPN6/kz0hlxPkURkTR7Zdw==", + "dependencies": { + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/abort-controller/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { @@ -5157,11 +5119,11 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.0.2.tgz", - "integrity": "sha512-8Bk7CgnVKg1dn5TgnjwPz2ebhxeR7CjGs5yhVYH3S8x0q8yPZZVWwpRIglwXaf5AZBzJlNO1lh+lUhMf2e73zQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-1.0.3.tgz", + "integrity": "sha512-zEAuszuJzqpHHSK2iASA53ipydqTYrCN1FKdLVDKxdy6f3QaUaGfPM3V3ZlfbxFEvNVCyGPlWT5yXQqhICvmuQ==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "@smithy/util-config-provider": "^1.0.2", "@smithy/util-middleware": "^1.0.2", "tslib": "^2.5.0" @@ -5170,15 +5132,37 @@ "node": ">=14.0.0" } }, + "node_modules/@smithy/config-resolver/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/credential-provider-imds": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.2.tgz", - "integrity": "sha512-fLjCya+JOu2gPJpCiwSUyoLvT8JdNJmOaTOkKYBZoGf7CzqR6lluSyI+eboZnl/V0xqcfcqBG4tgqCISmWS3/w==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-1.0.3.tgz", + "integrity": "sha512-UD97tMpAvlyfiLPsnfkoR74H+gv1hqb63jx/AXgmsunLg7c385DR214LB3rBF+s8tfWDuFbz45Qvv3ztOrnIaw==", + "dependencies": { + "@smithy/node-config-provider": "^1.0.3", + "@smithy/property-provider": "^1.1.0", + "@smithy/types": "^2.0.0", + "@smithy/url-parser": "^1.0.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/credential-provider-imds/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/node-config-provider": "^1.0.2", - "@smithy/property-provider": "^1.0.2", - "@smithy/types": "^1.1.1", - "@smithy/url-parser": "^1.0.2", "tslib": "^2.5.0" }, "engines": { @@ -5186,34 +5170,56 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.0.2.tgz", - "integrity": "sha512-eW/XPiLauR1VAgHKxhVvgvHzLROUgTtqat2lgljztbH8uIYWugv7Nz+SgCavB+hWRazv2iYgqrSy74GvxXq/rg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-1.0.3.tgz", + "integrity": "sha512-2n3/t7k73d4ag9XZL+bhdwZypPpzqE17ZRFVdEGm3sibMi6NBu9UDWXW/KeMet5/WkfRGHWi+vxM7lWtTHvOag==", "dependencies": { "@aws-crypto/crc32": "3.0.0", - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "@smithy/util-hex-encoding": "^1.0.2", "tslib": "^2.5.0" } }, + "node_modules/@smithy/eventstream-codec/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/fetch-http-handler": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.2.tgz", - "integrity": "sha512-kynyofLf62LvR8yYphPPdyHb8fWG3LepFinM/vWUTG2Q1pVpmPCM530ppagp3+q2p+7Ox0UvSqldbKqV/d1BpA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-1.0.3.tgz", + "integrity": "sha512-+23hIm0abvLDK//aVmRKhdPO/LlB63a9R55UwY03kAyqldSeOiyVz4zrj2NQjigbSAQeqKKkHLQPnBr+kpiZJQ==", "dependencies": { - "@smithy/protocol-http": "^1.1.1", - "@smithy/querystring-builder": "^1.0.2", - "@smithy/types": "^1.1.1", + "@smithy/protocol-http": "^1.1.2", + "@smithy/querystring-builder": "^1.0.3", + "@smithy/types": "^2.0.0", "@smithy/util-base64": "^1.0.2", "tslib": "^2.5.0" } }, + "node_modules/@smithy/fetch-http-handler/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/hash-node": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.0.2.tgz", - "integrity": "sha512-K6PKhcUNrJXtcesyzhIvNlU7drfIU7u+EMQuGmPw6RQDAg/ufUcfKHz4EcUhFAodUmN+rrejhRG9U6wxjeBOQA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-1.0.3.tgz", + "integrity": "sha512-PIIQw++BHqcKavLgvijC14Mu2qF+OM9Us2xJj1X/ofrZGsi3T8EML/W1z96hbUszoL5/n+M7zA6/SvjJd31UIw==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "@smithy/util-buffer-from": "^1.0.2", "@smithy/util-utf8": "^1.0.2", "tslib": "^2.5.0" @@ -5222,15 +5228,37 @@ "node": ">=14.0.0" } }, + "node_modules/@smithy/hash-node/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/invalid-dependency": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.0.2.tgz", - "integrity": "sha512-B1Y3Tsa6dfC+Vvb+BJMhTHOfFieeYzY9jWQSTR1vMwKkxsymD0OIAnEw8rD/RiDj/4E4RPGFdx9Mdgnyd6Bv5Q==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-1.0.3.tgz", + "integrity": "sha512-aREyULT5qqgJinUlbQtQyuzF6U83G9NEMrq+W8hBPiPpNEAjADrr234fivDzOW5ZwUEOk+ZqibXPKU0IC5ZNyA==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" } }, + "node_modules/@smithy/invalid-dependency/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/is-array-buffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-1.0.2.tgz", @@ -5242,67 +5270,162 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-content-length": { + "node_modules/@smithy/middleware-content-length": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.0.3.tgz", + "integrity": "sha512-p+dP5bMGh3HMzQrGCmB+r6qJAC+BTk4y7QBejzI17xhSZgtG23I3ojIp6CXLWFixUDQ1TTPc8Tya0vQydiMuDQ==", + "dependencies": { + "@smithy/protocol-http": "^1.1.2", + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-content-length/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.4.tgz", + "integrity": "sha512-PLPVpgUS90LZkkzgBeRUJK7ujWHuwcEzvwOWBrkwGaOmJRDf3jEJ/oO3Cs6jDBdk7GyY9ciWaMJj4zhuCh5rAw==", + "dependencies": { + "@smithy/middleware-serde": "^1.0.3", + "@smithy/types": "^2.0.0", + "@smithy/url-parser": "^1.0.3", + "@smithy/util-middleware": "^1.0.2", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-endpoint/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.0.5.tgz", + "integrity": "sha512-tII4zGFYF9YSXLCQdnApbVSFbVuAMeGrGmi+p8THocfJTJwWOk0XQxlIU325Khgtx/eRujryVbY6mglbKJ6rcQ==", + "dependencies": { + "@smithy/protocol-http": "^1.1.2", + "@smithy/service-error-classification": "^1.0.3", + "@smithy/types": "^2.0.0", + "@smithy/util-middleware": "^1.0.2", + "@smithy/util-retry": "^1.0.4", + "tslib": "^2.5.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-retry/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-serde": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.0.3.tgz", + "integrity": "sha512-k5oHI2n6DkpTonUBUqwuvV/FPvO7CH4UmzIHRHBPo5y/+vMTC/wVu8M4eug3xUzpAkihcUR6jIi+agfHuouU2A==", + "dependencies": { + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-serde/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/middleware-stack": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-1.0.2.tgz", - "integrity": "sha512-pa1/SgGIrSmnEr2c9Apw7CdU4l/HW0fK3+LKFCPDYJrzM0JdYpqjQzgxi31P00eAkL0EFBccpus/p1n2GF9urw==", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.0.2.tgz", + "integrity": "sha512-H7/uAQEcmO+eDqweEFMJ5YrIpsBwmrXSP6HIIbtxKJSQpAcMGY7KrR2FZgZBi1FMnSUOh+rQrbOyj5HQmSeUBA==", "dependencies": { - "@smithy/protocol-http": "^1.1.1", - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-endpoint": { + "node_modules/@smithy/node-config-provider": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-1.0.3.tgz", - "integrity": "sha512-GsWvTXMFjSgl617PCE2km//kIjjtvMRrR2GAuRDIS9sHiLwmkS46VWaVYy+XE7ubEsEtzZ5yK2e8TKDR6Qr5Lw==", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.0.3.tgz", + "integrity": "sha512-4E0cVeVHhOozdiXgnbgO3qxh9eHggDJoFf1chdb+bj++4qdHwBnMjVjLGI5+btFd8viL9TSfrpNnIoOlGMw5SA==", "dependencies": { - "@smithy/middleware-serde": "^1.0.2", - "@smithy/types": "^1.1.1", - "@smithy/url-parser": "^1.0.2", - "@smithy/util-middleware": "^1.0.2", + "@smithy/property-provider": "^1.1.0", + "@smithy/shared-ini-file-loader": "^1.0.3", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-retry": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-1.0.4.tgz", - "integrity": "sha512-G7uRXGFL8c3F7APnoIMTtNAHH8vT4F2qVnAWGAZaervjupaUQuRRHYBLYubK0dWzOZz86BtAXKieJ5p+Ni2Xpg==", + "node_modules/@smithy/node-config-provider/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/protocol-http": "^1.1.1", - "@smithy/service-error-classification": "^1.0.3", - "@smithy/types": "^1.1.1", - "@smithy/util-middleware": "^1.0.2", - "@smithy/util-retry": "^1.0.4", - "tslib": "^2.5.0", - "uuid": "^8.3.2" + "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-serde": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-1.0.2.tgz", - "integrity": "sha512-T4PcdMZF4xme6koUNfjmSZ1MLi7eoFeYCtodQNQpBNsS77TuJt1A6kt5kP/qxrTvfZHyFlj0AubACoaUqgzPeg==", + "node_modules/@smithy/node-http-handler": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.0.4.tgz", + "integrity": "sha512-5CTAa0Drwv0w38kXzeNN2BFIzgbCLBSxuJYVSkpq5gWD2KjJFJAqnlDggn05W3z64dIguKYZzr8xTV8YZa2F8w==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/abort-controller": "^1.0.3", + "@smithy/protocol-http": "^1.1.2", + "@smithy/querystring-builder": "^1.0.3", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/middleware-stack": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-1.0.2.tgz", - "integrity": "sha512-H7/uAQEcmO+eDqweEFMJ5YrIpsBwmrXSP6HIIbtxKJSQpAcMGY7KrR2FZgZBi1FMnSUOh+rQrbOyj5HQmSeUBA==", + "node_modules/@smithy/node-http-handler/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { "tslib": "^2.5.0" }, @@ -5310,53 +5433,46 @@ "node": ">=14.0.0" } }, - "node_modules/@smithy/node-config-provider": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-1.0.2.tgz", - "integrity": "sha512-HU7afWpTToU0wL6KseGDR2zojeyjECQfr8LpjAIeHCYIW7r360ABFf4EaplaJRMVoC3hD9FeltgI3/NtShOqCg==", + "node_modules/@smithy/property-provider": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.1.0.tgz", + "integrity": "sha512-T2QWZgYthNJUFvBDBh7riOmmu0RxGs2d4ir+nlJ3tfOYnJ8h7Q3zdgN9QuEBGRm8Q/hElBBWUnbWLyoFWztgtw==", "dependencies": { - "@smithy/property-provider": "^1.0.2", - "@smithy/shared-ini-file-loader": "^1.0.2", - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/node-http-handler": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-1.0.3.tgz", - "integrity": "sha512-PcPUSzTbIb60VCJCiH0PU0E6bwIekttsIEf5Aoo/M0oTfiqsxHTn0Rcij6QoH6qJy6piGKXzLSegspXg5+Kq6g==", + "node_modules/@smithy/property-provider/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/abort-controller": "^1.0.2", - "@smithy/protocol-http": "^1.1.1", - "@smithy/querystring-builder": "^1.0.2", - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/property-provider": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-1.0.2.tgz", - "integrity": "sha512-pXDPyzKX8opzt38B205kDgaxda6LHcTfPvTYQZnwP6BAPp1o9puiCPjeUtkKck7Z6IbpXCPUmUQnzkUzWTA42Q==", + "node_modules/@smithy/protocol-http": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.2.tgz", + "integrity": "sha512-rG6qA7XdD8CwpvxD+Q5vSmK96o0UnUjeNICc5Cn8y+G+i8E0TpN+w3ixt/lUOxMdxfRWbnpPEM3ximSPXIsRsg==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">=14.0.0" } }, - "node_modules/@smithy/protocol-http": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-1.1.1.tgz", - "integrity": "sha512-mFLFa2sSvlUxm55U7B4YCIsJJIMkA6lHxwwqOaBkral1qxFz97rGffP/mmd4JDuin1EnygiO5eNJGgudiUgmDQ==", + "node_modules/@smithy/protocol-http/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { @@ -5364,11 +5480,11 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.0.2.tgz", - "integrity": "sha512-6P/xANWrtJhMzTPUR87AbXwSBuz1SDHIfL44TFd/GT3hj6rA+IEv7rftEpPjayUiWRocaNnrCPLvmP31mobOyA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-1.0.3.tgz", + "integrity": "sha512-3t7cyxIgasfa+K0sZbfjLgxa1+oB2gIYJn4zJeNFFqpjb9pYtIyrQAPPgvVbo6SMs7SdqiDIBpOH5tL0OV2szQ==", "dependencies": { - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "@smithy/util-uri-escape": "^1.0.2", "tslib": "^2.5.0" }, @@ -5376,12 +5492,34 @@ "node": ">=14.0.0" } }, + "node_modules/@smithy/querystring-builder/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/querystring-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.0.2.tgz", - "integrity": "sha512-IWxwxjn+KHWRRRB+K2Ngl+plTwo2WSgc2w+DvLy0DQZJh9UGOpw40d6q97/63GBlXIt4TEt5NbcFrO30CKlrsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-1.0.3.tgz", + "integrity": "sha512-QGCESN01v1yE2khC5SUm10gseDLbq+1gggmq2GizO1QBnu2IK4m1M4JDGe/VU8Kv0dVR0NsrXTTy+O6M+ZcKwQ==", + "dependencies": { + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/querystring-parser/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { @@ -5397,11 +5535,22 @@ } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.2.tgz", - "integrity": "sha512-bdQj95VN+lCXki+P3EsDyrkpeLn8xDYiOISBGnUG/AGPYJXN8dmp4EhRRR7XOoLoSs8anZHR4UcGEOzFv2jwGw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-1.0.3.tgz", + "integrity": "sha512-gXamcqTo94y7toFLRwHygeOD3sTFpihPdFQnEzUH0Nzm9N+Z93abCNTPM8CMZu0kvKm343TxZ1bVzxyx49LyVA==", + "dependencies": { + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/shared-ini-file-loader/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" }, "engines": { @@ -5409,13 +5558,13 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.0.2.tgz", - "integrity": "sha512-rpKUhmCuPmpV5dloUkOb9w1oBnJatvKQEjIHGmkjRGZnC3437MTdzWej9TxkagcZ8NRRJavYnEUixzxM1amFig==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-1.0.3.tgz", + "integrity": "sha512-y/4FREJ7zi1qa7Vw6qIQVOYGGMhCpr3in1IJuWmSU7JHzNgMEqy4pyh4vp9Rhrr2a61fpqSAbVW+Rm75w13lBA==", "dependencies": { - "@smithy/eventstream-codec": "^1.0.2", + "@smithy/eventstream-codec": "^1.0.3", "@smithy/is-array-buffer": "^1.0.2", - "@smithy/types": "^1.1.1", + "@smithy/types": "^2.0.0", "@smithy/util-hex-encoding": "^1.0.2", "@smithy/util-middleware": "^1.0.2", "@smithy/util-uri-escape": "^1.0.2", @@ -5426,14 +5575,36 @@ "node": ">=14.0.0" } }, + "node_modules/@smithy/signature-v4/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/smithy-client": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.0.4.tgz", - "integrity": "sha512-gpo0Xl5Nyp9sgymEfpt7oa9P2q/GlM3VmQIdm+FeH0QEdYOQx3OtvwVmBYAMv2FIPWxkMZlsPYRTnEiBTK5TYg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-1.0.5.tgz", + "integrity": "sha512-K/gvUh4dg+/fiXaqiP819mv5xcni7mJqbAf5RdV5g2DI2qDOy+B7/BqBb0OGWB0uQwhL+TUm6q4ibvF7Vs2Cxw==", "dependencies": { "@smithy/middleware-stack": "^1.0.2", - "@smithy/types": "^1.1.1", - "@smithy/util-stream": "^1.0.2", + "@smithy/types": "^2.0.0", + "@smithy/util-stream": "^1.0.3", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@smithy/smithy-client/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { "tslib": "^2.5.0" }, "engines": { @@ -5452,13 +5623,24 @@ } }, "node_modules/@smithy/url-parser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.0.2.tgz", - "integrity": "sha512-0JRsDMQe53F6EHRWksdcavKDRjyqp8vrjakg8EcCUOa7PaFRRB1SO/xGZdzSlW1RSTWQDEksFMTCEcVEKmAoqA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-1.0.3.tgz", + "integrity": "sha512-kRN3cxkK6Ni04+/b46Z/rM1OXXqhI3nzWhvvVWdXDPlgGD8UXLfQfQg3MQadkuKiLtZwZx7rKJCE4gBnfwTiXg==", + "dependencies": { + "@smithy/querystring-parser": "^1.0.3", + "@smithy/types": "^2.0.0", + "tslib": "^2.5.0" + } + }, + "node_modules/@smithy/url-parser/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", "dependencies": { - "@smithy/querystring-parser": "^1.0.2", - "@smithy/types": "^1.1.1", "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" } }, "node_modules/@smithy/util-base64": { @@ -5516,12 +5698,12 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.2.tgz", - "integrity": "sha512-J1u2PO235zxY7dg0+ZqaG96tFg4ehJZ7isGK1pCBEA072qxNPwIpDzUVGnLJkHZvjWEGA8rxIauDtXfB0qxeAg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-1.0.3.tgz", + "integrity": "sha512-dczjL1D1FesPUpVzD/b546d6QoNdDzEmAl/7Mkg9xYm1WGi7q6HyUEcuTpxOt/+p56pHxEtEw0u/IgDSqwo+Cg==", "dependencies": { - "@smithy/property-provider": "^1.0.2", - "@smithy/types": "^1.1.1", + "@smithy/property-provider": "^1.1.0", + "@smithy/types": "^2.0.0", "bowser": "^2.11.0", "tslib": "^2.5.0" }, @@ -5529,22 +5711,44 @@ "node": ">= 10.0.0" } }, + "node_modules/@smithy/util-defaults-mode-browser/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.2.tgz", - "integrity": "sha512-9/BN63rlIsFStvI+AvljMh873Xw6bbI6b19b+PVYXyycQ2DDQImWcjnzRlHW7eP65CCUNGQ6otDLNdBQCgMXqg==", - "dependencies": { - "@smithy/config-resolver": "^1.0.2", - "@smithy/credential-provider-imds": "^1.0.2", - "@smithy/node-config-provider": "^1.0.2", - "@smithy/property-provider": "^1.0.2", - "@smithy/types": "^1.1.1", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-1.0.3.tgz", + "integrity": "sha512-yiQ59VvsgnCeTsLLfO5a7vbi+7bJwJDqzHS4Xe60v3GGQeQ45fq8JfyR7WuD6bctpMg8lDzGqDRfdJIMtPTRGw==", + "dependencies": { + "@smithy/config-resolver": "^1.0.3", + "@smithy/credential-provider-imds": "^1.0.3", + "@smithy/node-config-provider": "^1.0.3", + "@smithy/property-provider": "^1.1.0", + "@smithy/types": "^2.0.0", "tslib": "^2.5.0" }, "engines": { "node": ">= 10.0.0" } }, + "node_modules/@smithy/util-defaults-mode-node/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/util-hex-encoding": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-1.0.2.tgz", @@ -5580,13 +5784,13 @@ } }, "node_modules/@smithy/util-stream": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.0.2.tgz", - "integrity": "sha512-qyN2M9QFMTz4UCHi6GnBfLOGYKxQZD01Ga6nzaXFFC51HP/QmArU72e4kY50Z/EtW8binPxspP2TAsGbwy9l3A==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-1.0.3.tgz", + "integrity": "sha512-NV0LuoZcZXyEqiYdzBGfZePYhvRTlUUQI8bQtn0whzfJpoXxiw92Be+s0fLxVPA9UVoofhUE04VJiP9B+eCy2Q==", "dependencies": { - "@smithy/fetch-http-handler": "^1.0.2", - "@smithy/node-http-handler": "^1.0.3", - "@smithy/types": "^1.1.1", + "@smithy/fetch-http-handler": "^1.0.3", + "@smithy/node-http-handler": "^1.0.4", + "@smithy/types": "^2.0.0", "@smithy/util-base64": "^1.0.2", "@smithy/util-buffer-from": "^1.0.2", "@smithy/util-hex-encoding": "^1.0.2", @@ -5597,6 +5801,17 @@ "node": ">=14.0.0" } }, + "node_modules/@smithy/util-stream/node_modules/@smithy/types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-2.0.0.tgz", + "integrity": "sha512-Vf8Nauye6HcAkEreDgl4hSscK/YV3zubZ89U2RZS0GRzkEqvVArKcY6k0pEq4OvGNZieGZyb8oleFHqGpy1+Kw==", + "dependencies": { + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@smithy/util-uri-escape": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-1.0.2.tgz", @@ -5674,6 +5889,14 @@ "node": ">=14.16" } }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, "node_modules/@trezor/analytics": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@trezor/analytics/-/analytics-1.0.3.tgz", @@ -6483,6 +6706,15 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, + "node_modules/@types/tar": { + "version": "6.1.5", + "resolved": "https://registry.npmjs.org/@types/tar/-/tar-6.1.5.tgz", + "integrity": "sha512-qm2I/RlZij5RofuY7vohTpYNaYcrSQlN2MyjucQc7ZweDwaEWkdN/EeNh6e9zjK6uEm6PwjdMXkcj05BxZdX1Q==", + "dependencies": { + "@types/node": "*", + "minipass": "^4.0.0" + } + }, "node_modules/@types/web": { "version": "0.0.99", "resolved": "https://registry.npmjs.org/@types/web/-/web-0.0.99.tgz", @@ -7196,9 +7428,7 @@ "node_modules/abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==", - "dev": true, - "peer": true + "integrity": "sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==" }, "node_modules/abort-controller": { "version": "3.0.0", @@ -7343,7 +7573,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" @@ -7558,6 +7787,23 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==" + }, + "node_modules/are-we-there-yet": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", + "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/arg": { "version": "5.0.2", "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", @@ -7733,6 +7979,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, "engines": { "node": ">=8" } @@ -8617,6 +8864,11 @@ "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" }, + "node_modules/bls-eth-wasm": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/bls-eth-wasm/-/bls-eth-wasm-0.4.8.tgz", + "integrity": "sha512-ye7+G6KFLb3i9xSrLASAoYqOUK5WLB6XA5DD8Sh0UQpZ3T999ylsYbFdoOJpmvTDuBuMi23Vy8Jm0pn/GF01CA==" + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -9112,6 +9364,146 @@ "node": ">= 0.8" } }, + "node_modules/cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dependencies": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/cacache/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cacache/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/cacache/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacache/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cacache/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cacache/node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cacache/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/cacheable-lookup": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz", @@ -9200,6 +9592,7 @@ "version": "1.6.3", "resolved": "https://registry.npmjs.org/case/-/case-1.6.3.tgz", "integrity": "sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==", + "dev": true, "engines": { "node": ">= 0.8.0" } @@ -9328,9 +9721,9 @@ } }, "node_modules/chart.js": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.3.0.tgz", - "integrity": "sha512-ynG0E79xGfMaV2xAHdbhwiPLczxnNNnasrmPEXriXsPJGjmhOBYzFVEsB65w2qMDz+CaBJJuJD0inE/ab/h36g==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/chart.js/-/chart.js-4.3.1.tgz", + "integrity": "sha512-QHuISG3hTJ0ftq0I0f5jqH9mNVO9bqG8P+zvMOVslgKajQVvFEX7QAhYNJ+QEmw+uYTwo8XpTimaB82oeTWjxw==", "dependencies": { "@kurkle/color": "^0.3.0" }, @@ -9509,7 +9902,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, "engines": { "node": ">=6" } @@ -9754,6 +10146,14 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "bin": { + "color-support": "bin.js" + } + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -10022,6 +10422,11 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==" + }, "node_modules/constructs": { "version": "10.2.69", "resolved": "https://registry.npmjs.org/constructs/-/constructs-10.2.69.tgz", @@ -11030,6 +11435,11 @@ "node": ">=0.4.0" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==" + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -11300,9 +11710,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.468", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.468.tgz", - "integrity": "sha512-6M1qyhaJOt7rQtNti1lBA0GwclPH+oKCmsra/hkcWs5INLxfXXD/dtdnaKUYQu/pjOBP/8Osoe4mAcNvvzoFag==" + "version": "1.4.469", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.469.tgz", + "integrity": "sha512-HRN9XQjElxJBrdDky5iiUUr3eDwXGTg6Cp4IV8MuNc8VqMkYSneSnIe6poFKx9PsNzkudCgaWCBVxwDqirwQWQ==" }, "node_modules/elliptic": { "version": "6.5.4", @@ -11349,6 +11759,15 @@ "node": ">= 0.8" } }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "optional": true, + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, "node_modules/end-of-stream": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", @@ -11373,11 +11792,15 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "dev": true, "engines": { "node": ">=6" } }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, "node_modules/errno": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", @@ -14275,6 +14698,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, "dependencies": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", @@ -14311,8 +14735,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" }, "node_modules/fsevents": { "version": "2.3.2", @@ -14374,6 +14797,58 @@ "fx": "index.js" } }, + "node_modules/gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/gauge/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/gauge/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/gauge/node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -14618,24 +15093,6 @@ "git-up": "^7.0.0" } }, - "node_modules/glob": { - "version": "9.3.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-9.3.5.tgz", - "integrity": "sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "minimatch": "^8.0.2", - "minipass": "^4.2.4", - "path-scurry": "^1.6.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", @@ -14648,30 +15105,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/glob/node_modules/minimatch": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-8.0.4.tgz", - "integrity": "sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/global": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", @@ -15269,6 +15702,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==" + }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", @@ -15584,6 +16022,7 @@ "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, "engines": { "node": ">= 4" } @@ -15647,7 +16086,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "engines": { "node": ">=0.8.19" } @@ -15656,11 +16094,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, "engines": { "node": ">=8" } }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==" + }, "node_modules/inflation": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/inflation/-/inflation-2.0.0.tgz", @@ -15673,7 +16115,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -16235,6 +16676,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==" + }, "node_modules/is-map": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", @@ -16521,8 +16967,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/isomorphic-unfetch": { "version": "3.1.0", @@ -17485,6 +17930,8 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, + "peer": true, "engines": { "node": "*" } @@ -18278,7 +18725,8 @@ "node_modules/lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==" + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true }, "node_modules/lodash.uniqby": { "version": "4.7.0", @@ -18521,6 +18969,85 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, + "node_modules/make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "dependencies": { + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -18766,67 +19293,218 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "engines": { - "node": ">=6" + "node": ">=6" + } + }, + "node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", + "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-collect/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "dependencies": { + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "optionalDependencies": { + "encoding": "^0.1.12" + } + }, + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-fetch/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-fetch/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/mimic-response": { + "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", - "dev": true, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "dependencies": { + "minipass": "^3.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=8" } }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==", + "node_modules/minipass-pipeline/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dependencies": { - "dom-walk": "^0.1.0" + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + "node_modules/minipass-pipeline/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dependencies": { - "brace-expansion": "^1.1.7" + "minipass": "^3.0.0" }, "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, - "node_modules/minipass": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz", - "integrity": "sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==", - "dev": true, + "node_modules/minipass-sized/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, "engines": { "node": ">=8" } }, + "node_modules/minipass-sized/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/minizlib": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", @@ -19376,6 +20054,29 @@ } } }, + "node_modules/node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "dependencies": { + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" + }, + "engines": { + "node": ">= 10.12.0" + } + }, "node_modules/node-gyp-build": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", @@ -19386,6 +20087,132 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-gyp/node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/node-gyp/node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-gyp/node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-gyp/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/node-gyp/node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-gyp/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -19469,6 +20296,20 @@ "node": ">=8" } }, + "node_modules/npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", + "dependencies": { + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "node_modules/nth-check": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", @@ -19869,7 +20710,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, @@ -20049,7 +20889,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -20068,40 +20907,6 @@ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" }, - "node_modules/path-scurry": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", - "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", - "dev": true, - "dependencies": { - "lru-cache": "^9.1.1 || ^10.0.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.0.tgz", - "integrity": "sha512-svTf/fzsKHffP42sujkO/Rjs37BCIsQVRCeNYIm9WN8rgT7ffoUnRtZCqU+6BqcSBdv8gwJeTz8knJpgACeQMw==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.2.tgz", - "integrity": "sha512-eL79dXrE1q9dBbDCLg7xfn/vl7MS4F1gvJAgjJrQli/jbQWdUttuVawphqpffoIYfRdq78LHx6GP4bU/EQ2ATA==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -20626,6 +21431,31 @@ "asap": "~2.0.6" } }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/promise-retry/node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "engines": { + "node": ">= 4" + } + }, "node_modules/promise-to-callback": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/promise-to-callback/-/promise-to-callback-1.0.0.tgz", @@ -21805,6 +22635,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -21944,7 +22775,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -21959,7 +22789,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -23876,6 +24705,33 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/ssri/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ssri/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", @@ -24538,6 +25394,7 @@ "version": "6.8.1", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -24586,6 +25443,7 @@ "version": "8.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -24600,12 +25458,14 @@ "node_modules/table/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true }, "node_modules/table/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, "engines": { "node": ">=8" } @@ -24613,12 +25473,14 @@ "node_modules/table/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==" + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true }, "node_modules/table/node_modules/slice-ansi": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", @@ -24635,6 +25497,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -25444,6 +26307,22 @@ "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==", "dev": true }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, "node_modules/unique-string": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-3.0.0.tgz", @@ -26670,7 +27549,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -27105,6 +27983,7 @@ "version": "2.3.1", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "dev": true, "engines": { "node": ">= 14" } @@ -27482,6 +28361,8 @@ "name": "@casimir/oracle", "version": "0.0.1", "dependencies": { + "@chainsafe/bls": "^7.1.2", + "@chainsafe/blst": "^0.2.9", "ethers": "^5.7.2" }, "devDependencies": { diff --git a/services/oracle/package.json b/services/oracle/package.json index 9dcf4f18a..abbefcfd6 100644 --- a/services/oracle/package.json +++ b/services/oracle/package.json @@ -12,6 +12,8 @@ "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { + "@chainsafe/bls": "^7.1.2", + "@chainsafe/blst": "^0.2.9", "ethers": "^5.7.2" }, "devDependencies": { diff --git a/services/oracle/scripts/dev.ts b/services/oracle/scripts/dev.ts index 33f30dba4..14887424e 100644 --- a/services/oracle/scripts/dev.ts +++ b/services/oracle/scripts/dev.ts @@ -14,24 +14,30 @@ void async function () { process.env.SSV_TOKEN_ADDRESS = '0x3a9f01091C446bdE031E39ea8354647AFef091E7' process.env.UNISWAP_V3_FACTORY_ADDRESS = '0x1F98431c8aD98523631AE4a59f267346ea31F984' process.env.WETH_TOKEN_ADDRESS = '0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6' - process.env.STRATEGY = 'dkg' - process.env.CLI_PATH = `./${resourcePath}/rockx-dkg-cli/build/bin/rockx-dkg-cli` - process.env.MESSENGER_SRV_ADDR = 'http://0.0.0.0:3000' - process.env.USE_HARDCODED_OPERATORS = 'true' + process.env.CLI_STRATEGY = 'dkg' - await run(`make -C ${resourcePath}/rockx-dkg-cli build`) - const cli = await run(`which ${process.env.CLI_PATH}`) - if (!cli) throw new Error('Dkg cli not found') - if (os.platform() === 'linux') { - await run(`docker compose -f ${resourcePath}/rockx-dkg-cli/docker-compose.yaml -f ${resourcePath}/../docker-compose.override.yaml up -d`) + if (process.env.CLI_STRATEGY === 'dkg') { + process.env.CLI_PATH = `./${resourcePath}/rockx-dkg-cli/build/bin/rockx-dkg-cli` + process.env.MESSENGER_SRV_ADDR = 'http://0.0.0.0:3000' + process.env.USE_HARDCODED_OPERATORS = 'true' + await run(`make -C ${resourcePath}/rockx-dkg-cli build`) + const cli = await run(`which ${process.env.CLI_PATH}`) + if (!cli) throw new Error('Dkg cli not found') + if (os.platform() === 'linux') { + await run(`docker compose -f ${resourcePath}/rockx-dkg-cli/docker-compose.yaml -f ${resourcePath}/../docker-compose.override.yaml up -d`) + } else { + await run(`docker compose -f ${resourcePath}/rockx-dkg-cli/docker-compose.yaml up -d`) + } + const ping = await fetchRetry(`${process.env.MESSENGER_SRV_ADDR}/ping`) + const { message } = await ping.json() + if (message !== 'pong') throw new Error('Dkg service is not running') + console.log('🔑 Dkg service ready') } else { - await run(`docker compose -f ${resourcePath}/rockx-dkg-cli/docker-compose.yaml up -d`) + process.env.CLI_PATH = 'docker run -it ethdo' + await run('docker pull wealdtech/ethdo && docker build -t ethdo .') + console.log('🔑 Ethdo service ready') } - const ping = await fetchRetry(`${process.env.MESSENGER_SRV_ADDR}/ping`) - const { message } = await ping.json() - if (message !== 'pong') throw new Error('Dkg service is not running') - console.log('🔑 Dkg service started') run('npx esno -r dotenv/config src/index.ts') - console.log('🔑 Oracle service started') + console.log('🔮 Oracle service started') }() \ No newline at end of file diff --git a/services/oracle/src/index.ts b/services/oracle/src/index.ts index cb1ad063d..be4489ea9 100644 --- a/services/oracle/src/index.ts +++ b/services/oracle/src/index.ts @@ -1,10 +1,6 @@ -console.log('STARTING') import { ethers } from 'ethers' -console.log('ETHERS', JSON.stringify(ethers, null, 4)) import { getConfig } from './providers/config' -console.log('GETCONFIG', JSON.stringify(getConfig, null, 4)) import { getEventsIterable } from './providers/events' -console.log('GETEVENTSITERABLE', JSON.stringify(getEventsIterable, null, 4)) import { initiateDepositHandler, // initiateResharesHandler, @@ -12,43 +8,37 @@ import { // reportForcedExitsHandler, reportCompletedExitsHandler } from './providers/handlers' -console.log('INITIATEDEPOSITHANDLER', JSON.stringify(initiateDepositHandler, null, 4)) -console.log('REPORTCOMPLETEDEXITSHANDLER', JSON.stringify(reportCompletedExitsHandler, null, 4)) const config = getConfig() -console.log('CONFIG', JSON.stringify(config, null, 4)) +const handlers = { + DepositRequested: initiateDepositHandler, + /** + * We don't need to handle these/they aren't ready: + * ResharesRequested: initiateResharesHandler, + * ExitRequested: initiateExitsHandler, + * ForcedExitReportsRequested: reportForcedExitsHandler, + */ + CompletedExitReportsRequested: reportCompletedExitsHandler +} void async function () { - const handlers = { - DepositRequested: initiateDepositHandler, - /** - * We don't need to handle these/they aren't ready: - * ResharesRequested: initiateResharesHandler, - * ExitRequested: initiateExitsHandler, - * ForcedExitReportsRequested: reportForcedExitsHandler, - */ - CompletedExitReportsRequested: reportCompletedExitsHandler - } - console.log('HANDLERS', JSON.stringify(handlers, null, 4)) - const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) - console.log('PROVIDER', JSON.stringify(provider, null, 4)) const eventsIterable = getEventsIterable({ ethereumUrl: config.ethereumUrl, - manager: config.manager, + managerAddress: config.managerAddress, events: Object.keys(handlers) }) for await (const event of eventsIterable) { - console.log('EVENT', JSON.stringify(event, null, 4)) const details = event?.[event.length - 1] const { args } = details - console.log(`Handling ${details.event} with args ${JSON.stringify(args)}`) const handler = handlers[details.event as keyof typeof handlers] if (!handler) throw new Error(`No handler found for event ${details.event}`) - await handler({ args, strategy: config.strategy }) + await handler({ args, cliStrategy: config.cliStrategy }) } }() + + diff --git a/services/oracle/src/interfaces/CliInput.ts b/services/oracle/src/interfaces/CliInput.ts new file mode 100644 index 000000000..0924ad8f3 --- /dev/null +++ b/services/oracle/src/interfaces/CliInput.ts @@ -0,0 +1,5 @@ +export interface CliInput { + cliPath: string + cliStrategy: string + messengerUrl?: string +} \ No newline at end of file diff --git a/services/oracle/src/interfaces/DepositDataInput.ts b/services/oracle/src/interfaces/DepositDataInput.ts index 0f22396f8..c0162e8f4 100644 --- a/services/oracle/src/interfaces/DepositDataInput.ts +++ b/services/oracle/src/interfaces/DepositDataInput.ts @@ -1,6 +1,4 @@ export interface DepositDataInput { - /** Ceremony ID */ ceremonyId: string - /** Withdrawal address */ withdrawalAddress: string } \ No newline at end of file diff --git a/services/oracle/src/interfaces/EthdoOptions.ts b/services/oracle/src/interfaces/EthdoOptions.ts new file mode 100644 index 000000000..9af0b947a --- /dev/null +++ b/services/oracle/src/interfaces/EthdoOptions.ts @@ -0,0 +1,3 @@ +export interface EthdoOptions { + cliPath: string +} \ No newline at end of file diff --git a/services/oracle/src/interfaces/HandlerInput.ts b/services/oracle/src/interfaces/HandlerInput.ts index 9e626b9a2..077160f7c 100644 --- a/services/oracle/src/interfaces/HandlerInput.ts +++ b/services/oracle/src/interfaces/HandlerInput.ts @@ -3,5 +3,5 @@ export interface HandlerInput { poolId?: number count?: number } - strategy: string + cliStrategy: string } \ No newline at end of file diff --git a/services/oracle/src/interfaces/KeychainOptions.ts b/services/oracle/src/interfaces/KeysOptions.ts similarity index 66% rename from services/oracle/src/interfaces/KeychainOptions.ts rename to services/oracle/src/interfaces/KeysOptions.ts index 6a663a16a..1e39f7a72 100644 --- a/services/oracle/src/interfaces/KeychainOptions.ts +++ b/services/oracle/src/interfaces/KeysOptions.ts @@ -1,4 +1,4 @@ -export interface KeychainOptions { +export interface KeysOptions { strategy: string cliPath: string messengerUrl?: string diff --git a/services/oracle/src/providers/cli.ts b/services/oracle/src/providers/cli.ts new file mode 100644 index 000000000..d1e7c0869 --- /dev/null +++ b/services/oracle/src/providers/cli.ts @@ -0,0 +1,18 @@ +import { CliInput } from '../interfaces/CliInput' +import { Dkg } from './dkg' +import { Ethdo } from './ethdo' + +export function getCli(input: CliInput) { + if (input.cliStrategy === 'dkg') { + if (!input.messengerUrl) { + throw new Error('No messenger url provided') + } + return new Dkg({ + cliPath: input.cliPath, + messengerUrl: input.messengerUrl + }) + } + return new Ethdo({ + cliPath: input.cliPath + }) +} \ No newline at end of file diff --git a/services/oracle/src/providers/config.ts b/services/oracle/src/providers/config.ts index 622868322..c81702c67 100644 --- a/services/oracle/src/providers/config.ts +++ b/services/oracle/src/providers/config.ts @@ -1,9 +1,6 @@ import { ethers } from 'ethers' -import CasimirManagerJson from '@casimir/ethereum/build/artifacts/src/v1/CasimirManager.sol/CasimirManager.json' -import CasimirViewsJson from '@casimir/ethereum/build/artifacts/src/v1/CasimirViews.sol/CasimirViews.json' -import { CasimirManager, CasimirViews } from '@casimir/ethereum/build/artifacts/types' -const supportedStrategies = ['dkg', 'ethdo'] +const supportedCliStrategies = ['dkg', 'ethdo'] export function getConfig() { const ethereumUrl = process.env.ETHEREUM_RPC_URL @@ -17,12 +14,8 @@ export function getConfig() { const managerAddress = process.env.MANAGER_ADDRESS if (!managerAddress) throw new Error('No manager address provided') - const manager = new ethers.Contract(managerAddress, CasimirManagerJson.abi) as ethers.Contract & CasimirManager - const viewsAddress = process.env.VIEWS_ADDRESS if (!viewsAddress) throw new Error('No views address provided') - const views = new ethers.Contract(viewsAddress, CasimirViewsJson.abi) as CasimirViews & ethers.Contract - const linkTokenAddress = process.env.LINK_TOKEN_ADDRESS if (!linkTokenAddress) throw new Error('No link token address provided') const ssvNetworkAddress = process.env.SSV_NETWORK_ADDRESS @@ -36,26 +29,26 @@ export function getConfig() { const wethTokenAddress = process.env.WETH_TOKEN_ADDRESS if (!wethTokenAddress) throw new Error('No weth token address provided') - const strategy = process.env.STRATEGY - if (!strategy || !supportedStrategies.includes(strategy)) throw new Error('No strategy provided') const cliPath = process.env.CLI_PATH if (!cliPath) throw new Error('No cli path provided') + const cliStrategy = process.env.CLI_STRATEGY + if (!cliStrategy || !supportedCliStrategies.includes(cliStrategy)) throw new Error('No strategy provided') const messengerUrl = process.env.MESSENGER_SRV_ADDR - if (!messengerUrl && strategy === 'dkg') throw new Error('No messenger url provided') + if (cliStrategy === 'dkg' && !messengerUrl) throw new Error('No messenger url provided') return { ethereumUrl, wallet, - manager, - views, + managerAddress, + viewsAddress, linkTokenAddress, ssvNetworkAddress, ssvNetworkViewsAddress, ssvTokenAddress, uniswapV3FactoryAddress, wethTokenAddress, - strategy, cliPath, + cliStrategy, messengerUrl } } diff --git a/services/oracle/src/providers/dkg.ts b/services/oracle/src/providers/dkg.ts index 8de0a9afb..a7c473ca3 100644 --- a/services/oracle/src/providers/dkg.ts +++ b/services/oracle/src/providers/dkg.ts @@ -16,6 +16,9 @@ export class Dkg { constructor(options: DkgOptions) { this.cliPath = options.cliPath + if (!options.messengerUrl) { + throw new Error('No messenger url provided') + } this.messengerUrl = options.messengerUrl } diff --git a/services/oracle/src/providers/ethdo.ts b/services/oracle/src/providers/ethdo.ts index 7b4e1ac70..f45340143 100644 --- a/services/oracle/src/providers/ethdo.ts +++ b/services/oracle/src/providers/ethdo.ts @@ -8,7 +8,19 @@ export class Ethdo { constructor(options: { cliPath: string }) { this.cliPath = options.cliPath } - // async createValidator(input: CreateValidatorInput, retriesLeft: number | undefined = 25): Promise {}, + + async createValidator(input: CreateValidatorInput): Promise { + console.log(input) + + return { + depositDataRoot: '', + publicKey: '', + operatorIds: [], + shares: '', + signature: '', + withdrawalCredentials: '' + } + } // async reshareValidator(input: ReshareValidatorInput, retriesLeft: number | undefined = 25): Promise {}, // async getDepositData(input: DepositDataInput, retriesLeft: number | undefined = 25): Promise {}, // async getShares(ceremonyId: string, retriesLeft: number | undefined = 25): Promise {}, diff --git a/services/oracle/src/providers/events.ts b/services/oracle/src/providers/events.ts index b8dbeb2d3..af7a76cc7 100644 --- a/services/oracle/src/providers/events.ts +++ b/services/oracle/src/providers/events.ts @@ -1,34 +1,33 @@ import { ethers } from 'ethers' +import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' +import CasimirManagerJson from '@casimir/ethereum/build/artifacts/src/v1/CasimirManager.sol/CasimirManager.json' -export function getEventsIterable({ manager, events }: { +export function getEventsIterable({ ethereumUrl, managerAddress, events }: { ethereumUrl: string, - manager: ethers.Contract, + managerAddress: string, events: string[] }) { + const provider = new ethers.providers.JsonRpcProvider(ethereumUrl) + const manager = new ethers.Contract(managerAddress, CasimirManagerJson.abi, provider) as ethers.Contract & CasimirManager + return (async function*() { for (const event of events) { - yield* getEvent({ manager, event }) - } - })() -} - -async function* getEvent({ manager, event }: { manager: ethers.Contract, event: string }) { - const queue: any[][] = [] - const listener = (...args: any[]) => queue.push(args) - - manager.on(event, listener) - - while (true) { - if (queue.length === 0) { - await new Promise(resolve => { - const waitListener = () => { - manager.off(event, waitListener) - resolve() + const queue: any[][] = [] + const listener = (...args: any[]) => queue.push(args) + manager.on(event, listener) + while (true) { + if (queue.length === 0) { + await new Promise(resolve => { + const waitListener = () => { + manager.off(event, waitListener) + resolve() + } + manager.on(event, waitListener) + }) + } else { + yield queue.shift() } - manager.on(event, waitListener) - }) - } else { - yield queue.shift() + } } - } + })() } \ No newline at end of file diff --git a/services/oracle/src/providers/handlers.ts b/services/oracle/src/providers/handlers.ts index 8a92f4820..5414a3cfa 100644 --- a/services/oracle/src/providers/handlers.ts +++ b/services/oracle/src/providers/handlers.ts @@ -1,37 +1,42 @@ import { ethers } from 'ethers' import { HandlerInput } from '../interfaces/HandlerInput' -import { CasimirManager } from '@casimir/ethereum/build/artifacts/types' +import { CasimirManager, CasimirViews } from '@casimir/ethereum/build/artifacts/types' +import CasimirManagerJson from '@casimir/ethereum/build/artifacts/src/v1/CasimirManager.sol/CasimirManager.json' +import CasimirViewsJson from '@casimir/ethereum/build/artifacts/src/v1/CasimirViews.sol/CasimirViews.json' import { Scanner } from '@casimir/ssv' import { PoolStatus } from '@casimir/types' import { Factory } from '@casimir/uniswap' import { getConfig } from './config' -import { Keychain } from './keychain' +import { getCli } from './cli' const config = getConfig() +const cli = getCli({ + cliPath: config.cliPath, + cliStrategy: config.cliStrategy, + messengerUrl: config.messengerUrl +}) export async function initiateDepositHandler(input: HandlerInput) { if (!input.args.poolId) throw new Error('No pool id provided') const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) + const signer = config.wallet.connect(provider) + const manager = new ethers.Contract(config.managerAddress, CasimirManagerJson.abi, signer) as ethers.Contract & CasimirManager - const nonce = await provider.getTransactionCount(config.manager.address) + const nonce = await provider.getTransactionCount(manager.address) const poolAddress = ethers.utils.getContractAddress({ - from: config.manager.address, + from: manager.address, nonce }) const newOperatorIds = [1, 2, 3, 4] // Todo get new group here - const keychain = new Keychain({ - strategy: config.strategy, - cliPath: config.cliPath, - messengerUrl: config.messengerUrl - }) - const validator = await keychain.createValidator({ + const validator = await cli.createValidator({ poolId: input.args.poolId, operatorIds: newOperatorIds, withdrawalAddress: poolAddress }) + const { depositDataRoot, publicKey, @@ -46,17 +51,19 @@ export async function initiateDepositHandler(input: HandlerInput) { ssvNetworkAddress: config.ssvNetworkAddress, ssvNetworkViewsAddress: config.ssvNetworkViewsAddress }) + const clusterDetails = await scanner.getClusterDetails({ - ownerAddress: config.manager.address, + ownerAddress: manager.address, operatorIds }) + const { cluster, requiredBalancePerValidator } = clusterDetails - const processed = false const uniswapFactory = new Factory({ ethereumUrl: config.ethereumUrl, uniswapV3FactoryAddress: config.uniswapV3FactoryAddress }) + const price = await uniswapFactory.getSwapPrice({ tokenIn: config.wethTokenAddress, tokenOut: config.ssvTokenAddress, @@ -64,8 +71,7 @@ export async function initiateDepositHandler(input: HandlerInput) { }) const feeAmount = ethers.utils.parseEther((Number(ethers.utils.formatEther(requiredBalancePerValidator)) * Number(price)).toPrecision(9)) - const signer = config.wallet.connect(provider) - const initiateDeposit = await (config.manager.connect(signer) as ethers.Contract & CasimirManager).initiateDeposit( + const initiateDeposit = await manager.initiateDeposit( depositDataRoot, publicKey, signature, @@ -74,7 +80,7 @@ export async function initiateDepositHandler(input: HandlerInput) { shares, cluster, feeAmount, - processed + false ) await initiateDeposit.wait() } @@ -83,22 +89,20 @@ export async function initiateResharesHandler(input: HandlerInput) { if (!input.args.poolId) throw new Error('No pool id provided') const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) + const signer = config.wallet.connect(provider) + const manager = new ethers.Contract(config.managerAddress, CasimirManagerJson.abi, signer) as ethers.Contract & CasimirManager + const views = new ethers.Contract(config.viewsAddress, CasimirViewsJson.abi, provider) as ethers.Contract & CasimirViews // Todo reshare event will include the operator to boot // Get pool to reshare - const poolDetails = await config.views.connect(provider).getPoolDetails(input.args.poolId) + const poolDetails = await views.connect(provider).getPoolDetails(input.args.poolId) // Todo old operators and new operators only different by 1 operator const newOperatorGroup = [1, 2, 3, 4] // Get operators to sign reshare - const keychain = new Keychain({ - strategy: config.strategy, - cliPath: config.cliPath, - messengerUrl: config.messengerUrl - }) - // const validator = await dkg.reshareValidator({ + // const validator = await cli.reshareValidator({ // provider, // manager, // publicKey, @@ -116,16 +120,13 @@ export async function initiateExitsHandler(input: HandlerInput) { if (!input.args.poolId) throw new Error('No pool id provided') const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) - + const manager = new ethers.Contract(config.managerAddress, CasimirManagerJson.abi, provider) as ethers.Contract & CasimirManager + const views = new ethers.Contract(config.viewsAddress, CasimirViewsJson.abi, provider) as ethers.Contract & CasimirViews + // Get pool to exit - const poolDetails = await config.views.connect(provider).getPoolDetails(input.args.poolId) + const poolDetails = await views.connect(provider).getPoolDetails(input.args.poolId) // Get operators to sign exit - const keychain = new Keychain({ - strategy: config.strategy, - cliPath: config.cliPath, - messengerUrl: config.messengerUrl - }) } export async function reportForcedExitsHandler(input: HandlerInput) { @@ -133,16 +134,18 @@ export async function reportForcedExitsHandler(input: HandlerInput) { const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) const signer = config.wallet.connect(provider) + const manager = new ethers.Contract(config.managerAddress, CasimirManagerJson.abi, signer) as ethers.Contract & CasimirManager + const views = new ethers.Contract(config.viewsAddress, CasimirViewsJson.abi, provider) as ethers.Contract & CasimirViews - const stakedPoolIds = await config.manager.connect(provider).getStakedPoolIds() + const stakedPoolIds = await manager.getStakedPoolIds() let poolIndex = 0 let remaining = input.args.count while (remaining > 0) { const poolId = stakedPoolIds[poolIndex] - const poolDetails = await config.views.connect(provider).getPoolDetails(poolId) + const poolDetails = await views.getPoolDetails(poolId) if (poolDetails.status === PoolStatus.ACTIVE) { remaining-- - const reportForcedExit = await config.manager.connect(signer).reportForcedExit( + const reportForcedExit = await manager.reportForcedExit( poolIndex ) await reportForcedExit.wait() @@ -156,6 +159,8 @@ export async function reportCompletedExitsHandler(input: HandlerInput) { const provider = new ethers.providers.JsonRpcProvider(config.ethereumUrl) const signer = config.wallet.connect(provider) + const manager = new ethers.Contract(config.managerAddress, CasimirManagerJson.abi, signer) as ethers.Contract & CasimirManager + const views = new ethers.Contract(config.viewsAddress, CasimirViewsJson.abi, provider) as ethers.Contract & CasimirViews /** * In production, we get the completed exit order from the Beacon API (sorting by withdrawn epoch) @@ -163,12 +168,12 @@ export async function reportCompletedExitsHandler(input: HandlerInput) { * const stakedPublicKeys = await views.getStakedPublicKeys(startIndex, endIndex) * Here, we're just grabbing the next exiting pool for each completed exit */ - const stakedPoolIds = await config.manager.connect(provider).getStakedPoolIds() + const stakedPoolIds = await manager.getStakedPoolIds() let remaining = input.args.count let poolIndex = 0 while (remaining > 0) { const poolId = stakedPoolIds[poolIndex] - const poolDetails = await config.views.connect(provider).getPoolDetails(poolId) + const poolDetails = await views.getPoolDetails(poolId) if (poolDetails.status === PoolStatus.EXITING_FORCED || poolDetails.status === PoolStatus.EXITING_REQUESTED) { remaining-- @@ -189,11 +194,11 @@ export async function reportCompletedExitsHandler(input: HandlerInput) { ssvNetworkViewsAddress: config.ssvNetworkViewsAddress }) const clusterDetails = await scanner.getClusterDetails({ - ownerAddress: config.manager.address, + ownerAddress: manager.address, operatorIds }) const { cluster } = clusterDetails - const reportCompletedExit = await config.manager.connect(signer).reportCompletedExit( + const reportCompletedExit = await manager.reportCompletedExit( poolIndex, blamePercents, cluster diff --git a/services/oracle/src/providers/keychain.ts b/services/oracle/src/providers/keychain.ts deleted file mode 100644 index b792f2f23..000000000 --- a/services/oracle/src/providers/keychain.ts +++ /dev/null @@ -1,60 +0,0 @@ -import { Validator } from '@casimir/types' -import { CreateValidatorInput } from '../interfaces/CreateValidatorInput' -import { KeychainOptions } from '../interfaces/KeychainOptions' -import { Dkg } from './dkg' -// import { Ethdo } from './ethdo' -import { getOperatorUrls } from './registry' - -export class Keychain { - bridge: Dkg // | Ethdo - - constructor(options: KeychainOptions) { - /*if (options.strategy === 'dkg') {*/ - if (!options.messengerUrl) { - throw new Error('No messenger url provided') - } - this.bridge = new Dkg({ - cliPath: options.cliPath, - messengerUrl: options.messengerUrl - }) - /*} else { - this.bridge = new Ethdo({ - cliPath: options.cliPath - }) - }*/ - } - - /** - * Create validator with operator key shares and deposit data - * @param {CreateValidatorInput} input - Input for creating a validator - * @returns {Promise} Validator with operator key shares and deposit data - */ - async createValidator(input: CreateValidatorInput, retriesLeft: number | undefined = 25): Promise { - try { - const { poolId, operatorIds, withdrawalAddress } = input - const operators = getOperatorUrls(operatorIds) - const ceremonyId = await this.bridge.startKeygen({ operators, withdrawalAddress }) - - console.log(`Started ceremony ${ceremonyId} for pool ${poolId}`) - - await new Promise(resolve => setTimeout(resolve, 2500)) - - const shares = await this.bridge.getShares(ceremonyId) - const { depositDataRoot, publicKey, signature, withdrawalCredentials } = await this.bridge.getDepositData({ ceremonyId, withdrawalAddress }) - const validator: Validator = { - depositDataRoot, - publicKey, - operatorIds, - shares, - signature, - withdrawalCredentials - } - return validator - } catch (error) { - console.log(error) - await new Promise(resolve => setTimeout(resolve, 2500)) - console.log('Retrying create validator request') - return await this.createValidator(input, retriesLeft - 1) - } - } -} \ No newline at end of file