From 1388a5418808b0b8db5e9122ff8be45c44efa50f Mon Sep 17 00:00:00 2001 From: Pierre Jeanjacquot <26487010+PierreJeanjacquot@users.noreply.github.com> Date: Wed, 4 Feb 2026 16:50:47 +0100 Subject: [PATCH 1/3] fix: stop enforcing scone as unique TEE framework --- packages/sdk/package-lock.json | 689 +++++++++--------- packages/sdk/package.json | 2 +- packages/sdk/src/config/config.ts | 2 +- .../src/lib/dataProtectorCore/grantAccess.ts | 35 +- .../dataProtectorCore/prepareBulkRequest.ts | 4 +- .../dataProtectorCore/processBulkRequest.ts | 5 +- .../dataProtectorCore/processProtectedData.ts | 183 ++--- .../src/lib/dataProtectorCore/protectData.ts | 12 +- .../getGrantedAccess.test.ts | 10 +- .../e2e/dataProtectorCore/grantAccess.test.ts | 41 +- .../processProtectedData.test.ts | 3 +- .../dataProtectorCore/protectData.test.ts | 12 - 12 files changed, 485 insertions(+), 513 deletions(-) diff --git a/packages/sdk/package-lock.json b/packages/sdk/package-lock.json index a6317d490..e7595d949 100644 --- a/packages/sdk/package-lock.json +++ b/packages/sdk/package-lock.json @@ -18,7 +18,7 @@ "debug": "^4.3.4", "ethers": "^6.13.2", "graphql-request": "^6.0.0", - "iexec": "^8.22.4", + "iexec": "^8.22.5", "jszip": "^3.7.1", "kubo-rpc-client": "^5.4.1", "magic-bytes.js": "^1.0.15", @@ -107,6 +107,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.2.tgz", "integrity": "sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.22.13", @@ -742,20 +743,28 @@ "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", "dev": true }, + "node_modules/@inquirer/ansi": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-2.0.3.tgz", + "integrity": "sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==", + "license": "MIT", + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + } + }, "node_modules/@inquirer/checkbox": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.1.4.tgz", - "integrity": "sha512-d30576EZdApjAMceijXA5jDzRQHT/MygbC+J8I7EqA6f/FRpYxlRtRJbHF8gHeWYeSdOuTEJqonn7QLB1ELezA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-5.0.4.tgz", + "integrity": "sha512-DrAMU3YBGMUAp6ArwTIp/25CNDtDbxk7UjIrrtM25JVVrlVYlVzHh5HR1BDFu9JMyUoZ4ZanzeaHqNDttf3gVg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.5", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -767,16 +776,16 @@ } }, "node_modules/@inquirer/confirm": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.8.tgz", - "integrity": "sha512-dNLWCYZvXDjO3rnQfk2iuJNL4Ivwz/T2+C3+WnNfJKsNGSuOs3wAo2F6e0p946gtSAk31nZMfW+MRmYaplPKsg==", + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-6.0.4.tgz", + "integrity": "sha512-WdaPe7foUnoGYvXzH4jp4wH/3l+dBhZ3uwhKjXjwdrq5tEIFaANxj6zrGHxLdsIA0yKM0kFPVcEalOZXBB5ISA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -788,22 +797,21 @@ } }, "node_modules/@inquirer/core": { - "version": "10.1.9", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.1.9.tgz", - "integrity": "sha512-sXhVB8n20NYkUBfDYgizGHlpRVaCRjtuzNZA6xpALIUbkgfd2Hjz+DfEN6+h1BRnuxw0/P4jCIMjMsEOAMwAJw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-11.1.1.tgz", + "integrity": "sha512-hV9o15UxX46OyQAtaoMqAOxGR8RVl1aZtDx1jHbCtSJy1tBdTfKxLPKf7utsE4cRy4tcmCQ4+vdV+ca+oNxqNA==", "license": "MIT", "dependencies": { - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.5", - "ansi-escapes": "^4.3.2", + "@inquirer/ansi": "^2.0.3", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3", "cli-width": "^4.1.0", - "mute-stream": "^2.0.0", + "mute-stream": "^3.0.0", "signal-exit": "^4.1.0", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" + "wrap-ansi": "^9.0.2" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -827,17 +835,17 @@ } }, "node_modules/@inquirer/editor": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.9.tgz", - "integrity": "sha512-8HjOppAxO7O4wV1ETUlJFg6NDjp/W2NP5FB9ZPAcinAlNT4ZIWOLe2pUVwmmPRSV0NMdI5r/+lflN55AwZOKSw==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-5.0.4.tgz", + "integrity": "sha512-QI3Jfqcv6UO2/VJaEFONH8Im1ll++Xn/AJTBn9Xf+qx2M+H8KZAdQ5sAe2vtYlo+mLW+d7JaMJB4qWtK4BG3pw==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5", - "external-editor": "^3.1.0" + "@inquirer/core": "^11.1.1", + "@inquirer/external-editor": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -849,17 +857,37 @@ } }, "node_modules/@inquirer/expand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.11.tgz", - "integrity": "sha512-OZSUW4hFMW2TYvX/Sv+NnOZgO8CHT2TU1roUCUIF2T+wfw60XFRRp9MRUPCT06cRnKL+aemt2YmTWwt7rOrNEA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-5.0.4.tgz", + "integrity": "sha512-0I/16YwPPP0Co7a5MsomlZLpch48NzYfToyqYAOWtBmaXSB80RiNQ1J+0xx2eG+Wfxt0nHtpEWSRr6CzNVnOGg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-2.0.3.tgz", + "integrity": "sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.2" + }, + "engines": { + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -871,25 +899,25 @@ } }, "node_modules/@inquirer/figures": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.11.tgz", - "integrity": "sha512-eOg92lvrn/aRUqbxRyvpEWnrvRuTYRifixHkYVpJiygTgVSBIHDqLh0SrMQXkafvULg3ck11V7xvR+zcgvpHFw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-2.0.3.tgz", + "integrity": "sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" } }, "node_modules/@inquirer/input": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.1.8.tgz", - "integrity": "sha512-WXJI16oOZ3/LiENCAxe8joniNp8MQxF6Wi5V+EBbVA0ZIOpFcL4I9e7f7cXse0HJeIPCWO8Lcgnk98juItCi7Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-5.0.4.tgz", + "integrity": "sha512-4B3s3jvTREDFvXWit92Yc6jF1RJMDy2VpSqKtm4We2oVU65YOh2szY5/G14h4fHlyQdpUmazU5MPCFZPRJ0AOw==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -901,16 +929,16 @@ } }, "node_modules/@inquirer/number": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.11.tgz", - "integrity": "sha512-pQK68CsKOgwvU2eA53AG/4npRTH2pvs/pZ2bFvzpBhrznh8Mcwt19c+nMO7LHRr3Vreu1KPhNBF3vQAKrjIulw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-4.0.4.tgz", + "integrity": "sha512-CmMp9LF5HwE+G/xWsC333TlCzYYbXMkcADkKzcawh49fg2a1ryLc7JL1NJYYt1lJ+8f4slikNjJM9TEL/AljYQ==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -922,17 +950,17 @@ } }, "node_modules/@inquirer/password": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.11.tgz", - "integrity": "sha512-dH6zLdv+HEv1nBs96Case6eppkRggMe8LoOTl30+Gq5Wf27AO/vHFgStTVz4aoevLdNXqwE23++IXGw4eiOXTg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-5.0.4.tgz", + "integrity": "sha512-ZCEPyVYvHK4W4p2Gy6sTp9nqsdHQCfiPXIP9LbJVW4yCinnxL/dDDmPaEZVysGrj8vxVReRnpfS2fOeODe9zjg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5", - "ansi-escapes": "^4.3.2" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -944,24 +972,24 @@ } }, "node_modules/@inquirer/prompts": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.4.0.tgz", - "integrity": "sha512-EZiJidQOT4O5PYtqnu1JbF0clv36oW2CviR66c7ma4LsupmmQlUwmdReGKRp456OWPWMz3PdrPiYg3aCk3op2w==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-8.2.0.tgz", + "integrity": "sha512-rqTzOprAj55a27jctS3vhvDDJzYXsr33WXTjODgVOru21NvBo9yIgLIAf7SBdSV0WERVly3dR6TWyp7ZHkvKFA==", "license": "MIT", "dependencies": { - "@inquirer/checkbox": "^4.1.4", - "@inquirer/confirm": "^5.1.8", - "@inquirer/editor": "^4.2.9", - "@inquirer/expand": "^4.0.11", - "@inquirer/input": "^4.1.8", - "@inquirer/number": "^3.0.11", - "@inquirer/password": "^4.0.11", - "@inquirer/rawlist": "^4.0.11", - "@inquirer/search": "^3.0.11", - "@inquirer/select": "^4.1.0" + "@inquirer/checkbox": "^5.0.4", + "@inquirer/confirm": "^6.0.4", + "@inquirer/editor": "^5.0.4", + "@inquirer/expand": "^5.0.4", + "@inquirer/input": "^5.0.4", + "@inquirer/number": "^4.0.4", + "@inquirer/password": "^5.0.4", + "@inquirer/rawlist": "^5.2.0", + "@inquirer/search": "^4.1.0", + "@inquirer/select": "^5.0.4" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -973,17 +1001,16 @@ } }, "node_modules/@inquirer/rawlist": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.0.11.tgz", - "integrity": "sha512-uAYtTx0IF/PqUAvsRrF3xvnxJV516wmR6YVONOmCWJbbt87HcDHLfL9wmBQFbNJRv5kCjdYKrZcavDkH3sVJPg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-5.2.0.tgz", + "integrity": "sha512-CciqGoOUMrFo6HxvOtU5uL8fkjCmzyeB6fG7O1vdVAZVSopUBYECOwevDBlqNLyyYmzpm2Gsn/7nLrpruy9RFg==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/type": "^3.0.5", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^11.1.1", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -995,18 +1022,17 @@ } }, "node_modules/@inquirer/search": { - "version": "3.0.11", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.0.11.tgz", - "integrity": "sha512-9CWQT0ikYcg6Ls3TOa7jljsD7PgjcsYEM0bYE+Gkz+uoW9u8eaJCRHJKkucpRE5+xKtaaDbrND+nPDoxzjYyew==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-4.1.0.tgz", + "integrity": "sha512-EAzemfiP4IFvIuWnrHpgZs9lAhWDA0GM3l9F4t4mTQ22IFtzfrk8xbkMLcAN7gmVML9O/i+Hzu8yOUyAaL6BKA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.5", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1018,19 +1044,18 @@ } }, "node_modules/@inquirer/select": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.1.0.tgz", - "integrity": "sha512-z0a2fmgTSRN+YBuiK1ROfJ2Nvrpij5lVN3gPDkQGhavdvIVGHGW29LwYZfM/j42Ai2hUghTI/uoBuTbrJk42bA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-5.0.4.tgz", + "integrity": "sha512-s8KoGpPYMEQ6WXc0dT9blX2NtIulMdLOO3LA1UKOiv7KFWzlJ6eLkEYTDBIi+JkyKXyn8t/CD6TinxGjyLt57g==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/figures": "^1.0.11", - "@inquirer/type": "^3.0.5", - "ansi-escapes": "^4.3.2", - "yoctocolors-cjs": "^2.1.2" + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/figures": "^2.0.3", + "@inquirer/type": "^4.0.3" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1042,12 +1067,12 @@ } }, "node_modules/@inquirer/type": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.5.tgz", - "integrity": "sha512-ZJpeIYYueOz/i/ONzrfof8g89kNdO2hjGuvULROo3O8rlB2CRtSseE5KeirnyE4t/thAn/EwvS/vuQeJCn+NZg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-4.0.3.tgz", + "integrity": "sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw==", "license": "MIT", "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -1248,10 +1273,11 @@ } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -2017,6 +2043,7 @@ "integrity": "sha512-HHAlbXjWI6Kl9JmmUW1LSygT1YbblXgj2UvvDzMkTBPRzYMhW6xchxdO8HbtMPtFYRt/EQq9u1z7j4ttRSrFsA==", "dev": true, "hasInstallScript": true, + "peer": true, "dependencies": { "@swc/counter": "^0.1.3", "@swc/types": "^0.1.12" @@ -2297,9 +2324,9 @@ } }, "node_modules/@types/bn.js": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.6.tgz", - "integrity": "sha512-Xh8vSwUeMKeYYrj3cX4lGQgFSF/N03r+tv4AiLl1SucqV+uTQpxRcnM8AkXKHwYP9ZPXOYXRr2KPXpVlIvqh9w==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-DLbJ1BPqxvQhIGbeu8VbUC1DiAiahHtAYvA0ZEAa4P31F7IaArc8z3C3BRQdWX4mtLQuABG4yzp76ZrS02Ui1Q==", "license": "MIT", "dependencies": { "@types/node": "*" @@ -2532,6 +2559,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.10.0.tgz", "integrity": "sha512-uoLj4g2OTL8rfUQVx2AFO1hp/zja1wABJq77P6IclQs6I/m9GLrm7jCdgzZkvWdDCQf1uEvoa8s8CupsgWQgVg==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.5.1", "@typescript-eslint/scope-manager": "6.10.0", @@ -2567,6 +2595,7 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.10.0.tgz", "integrity": "sha512-+sZwIj+s+io9ozSxIWbNB5873OSdfeBEH/FR0re14WLI6BaKuSOnnwCJ2foUiu8uXf4dRp1UqHP0vrZ1zXGrog==", "dev": true, + "peer": true, "dependencies": { "@typescript-eslint/scope-manager": "6.10.0", "@typescript-eslint/types": "6.10.0", @@ -2747,6 +2776,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", "dev": true, + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -2788,6 +2818,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, "dependencies": { "type-fest": "^0.21.3" }, @@ -2802,6 +2833,7 @@ "version": "0.21.3", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true, "engines": { "node": ">=10" }, @@ -2813,6 +2845,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, "engines": { "node": ">=8" } @@ -3145,9 +3178,9 @@ } }, "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.2.tgz", + "integrity": "sha512-v2YAxEmKaBLahNwE1mjp4WON6huMNeuDvagFZW+ASCuA/ku0bXR9hSMw0XpiqMoA3+rmnyck/tPRSFQkoC9Cuw==", "license": "MIT" }, "node_modules/body-parser": { @@ -3175,32 +3208,16 @@ "url": "https://opencollective.com/express" } }, - "node_modules/body-parser/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/borsh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/borsh/-/borsh-2.0.0.tgz", "integrity": "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==" }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3242,6 +3259,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001587", "electron-to-chromium": "^1.4.668", @@ -3431,9 +3449,9 @@ } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, "node_modules/ci-info": { @@ -3494,12 +3512,12 @@ } }, "node_modules/cli-spinners": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", - "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-3.4.0.tgz", + "integrity": "sha512-bXfOC4QcT1tKXGorxL3wbJm6XJPDqEnij2gQ2m7ESQuE+/z9YFIWnl/5RpTiKWbMq3EVKR4fRLJGn6DVfu0mpw==", "license": "MIT", "engines": { - "node": ">=6" + "node": ">=18.20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -4077,7 +4095,8 @@ "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/encodeurl": { "version": "2.0.0", @@ -4093,6 +4112,7 @@ "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "peer": true, "dependencies": { "iconv-lite": "^0.6.2" } @@ -4294,6 +4314,7 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", "dev": true, + "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", @@ -4475,6 +4496,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", "dev": true, + "peer": true, "dependencies": { "array-includes": "^3.1.7", "array.prototype.findlastindex": "^1.2.3", @@ -4875,6 +4897,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "@adraffy/ens-normalize": "1.10.1", "@noble/curves": "1.2.0", @@ -4984,20 +5007,6 @@ "url": "https://opencollective.com/express" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5348,9 +5357,9 @@ } }, "node_modules/get-east-asian-width": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", - "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", "license": "MIT", "engines": { "node": ">=18" @@ -5736,15 +5745,19 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ieee754": { @@ -5767,31 +5780,31 @@ ] }, "node_modules/iexec": { - "version": "8.22.4", - "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.22.4.tgz", - "integrity": "sha512-XpevWryKB6lM8K9Pr6yQ1cc6xLgcOCU+CQzs0X1bTcqm3XSkUTUpM5x9/36k7qTzLhs+zTZ2Di5o+L96CikPBQ==", + "version": "8.22.5", + "resolved": "https://registry.npmjs.org/iexec/-/iexec-8.22.5.tgz", + "integrity": "sha512-9tCjjsQbbtBv/hlupYMxVjcjFHA9jT1l6au9+mUrSAymSgHm5USYx4SKjazXFxBD9nlKONIZ3QOM1vkwa9h3EQ==", "license": "Apache-2.0", "dependencies": { - "@multiformats/multiaddr": "^12.4.0", - "@types/bn.js": "^5.1.6", - "bn.js": "^5.2.1", + "@multiformats/multiaddr": "^13.0.1", + "@types/bn.js": "^5.2.0", + "bn.js": "^5.2.2", "buffer": "^6.0.3", "commander": "^13.1.0", - "debug": "^4.4.0", + "debug": "^4.4.3", "ethers": "^6.13.5", "fs-extra": "^11.3.0", - "graphql-request": "^7.1.2", - "inquirer": "^12.5.0", + "graphql-request": "^7.3.5", + "inquirer": "^13.1.0", "is-docker": "^3.0.0", "jszip": "^3.10.1", "kubo-rpc-client": "^5.3.0", - "multiformats": "^13.4.1", + "multiformats": "^13.4.2", "node-forge": "^1.3.2", - "ora": "^8.2.0", + "ora": "^9.0.0", "prettyjson": "^1.2.5", "query-string": "^9.1.1", "rlc-faucet-contract": "^1.0.10", - "semver": "^7.7.1", + "semver": "^7.7.3", "update-check": "^1.5.4", "yup": "^1.6.1" }, @@ -5799,10 +5812,22 @@ "iexec": "dist/esm/cli/cmd/iexec.js" } }, + "node_modules/iexec/node_modules/@multiformats/multiaddr": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz", + "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "@chainsafe/is-ip": "^2.0.1", + "multiformats": "^13.0.0", + "uint8-varint": "^2.0.1", + "uint8arrays": "^5.0.0" + } + }, "node_modules/iexec/node_modules/graphql-request": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-7.1.2.tgz", - "integrity": "sha512-+XE3iuC55C2di5ZUrB4pjgwe+nIQBuXVIK9J98wrVwojzDW3GMdSBZfxUk8l4j9TieIpjpggclxhNEU9ebGF8w==", + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-7.4.0.tgz", + "integrity": "sha512-xfr+zFb/QYbs4l4ty0dltqiXIp07U6sl+tOKAb0t50/EnQek6CVVBLjETXi+FghElytvgaAWtIOt3EV7zLzIAQ==", "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.2.0" @@ -5812,11 +5837,20 @@ } }, "node_modules/iexec/node_modules/multiformats": { - "version": "13.4.1", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.1.tgz", - "integrity": "sha512-VqO6OSvLrFVAYYjgsr8tyv62/rCQhPgsZUXLTqoFLSgdkgiUYKYeArbt1uWLlEpkjxQe+P0+sHlbPEte1Bi06Q==", + "version": "13.4.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.4.2.tgz", + "integrity": "sha512-eh6eHCrRi1+POZ3dA+Dq1C6jhP1GNtr9CRINMb67OKzqW9I5DUuZM/3jLPlzhgpGeiNUlEGEbkCYChXMCc/8DQ==", "license": "Apache-2.0 OR MIT" }, + "node_modules/iexec/node_modules/uint8arrays": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-5.1.0.tgz", + "integrity": "sha512-vA6nFepEmlSKkMBnLBaUMVvAC4G3CTmO58C12y4sq6WPDOR7mOFYOi7GlrQ4djeSbP6JG9Pv9tJDM97PedRSww==", + "license": "Apache-2.0 OR MIT", + "dependencies": { + "multiformats": "^13.0.0" + } + }, "node_modules/ignore": { "version": "5.2.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", @@ -5904,21 +5938,21 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" }, "node_modules/inquirer": { - "version": "12.5.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.5.0.tgz", - "integrity": "sha512-aiBBq5aKF1k87MTxXDylLfwpRwToShiHrSv4EmB07EYyLgmnjEz5B3rn0aGw1X3JA/64Ngf2T54oGwc+BCsPIQ==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-13.2.2.tgz", + "integrity": "sha512-+hlN8I88JE9T3zjWHGnMhryniRDbSgFNJHJTyD2iKO5YNpMRyfghQ6wVoe+gV4ygMM4r4GzlsBxNa1g/UUZixA==", "license": "MIT", "dependencies": { - "@inquirer/core": "^10.1.9", - "@inquirer/prompts": "^7.4.0", - "@inquirer/type": "^3.0.5", - "ansi-escapes": "^4.3.2", - "mute-stream": "^2.0.0", - "run-async": "^3.0.0", + "@inquirer/ansi": "^2.0.3", + "@inquirer/core": "^11.1.1", + "@inquirer/prompts": "^8.2.0", + "@inquirer/type": "^4.0.3", + "mute-stream": "^3.0.0", + "run-async": "^4.0.6", "rxjs": "^7.8.2" }, "engines": { - "node": ">=18" + "node": ">=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0" }, "peerDependencies": { "@types/node": ">=18" @@ -6127,6 +6161,7 @@ "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" } @@ -6524,6 +6559,7 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "peer": true, "dependencies": { "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", @@ -7131,10 +7167,11 @@ "license": "MIT" }, "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -7361,9 +7398,10 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" }, "node_modules/lodash.camelcase": { "version": "4.3.0", @@ -7377,13 +7415,13 @@ "dev": true }, "node_modules/log-symbols": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-6.0.0.tgz", - "integrity": "sha512-i24m8rpwhmPIS4zscNzK6MSEhk0DUWa/8iYQWxhffV8jkI4Phvs3F+quL5xvS0gdQR0FyTCMMH33Y78dDTzzIw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-7.0.1.tgz", + "integrity": "sha512-ja1E3yCr9i/0hmBVaM0bfwDjnGy8I/s6PP4DFp+yP+a+mrHO4Rm7DtmnqROTUkHIkqffC84YY7AeqX6oFk0WFg==", "license": "MIT", "dependencies": { - "chalk": "^5.3.0", - "is-unicode-supported": "^1.3.0" + "is-unicode-supported": "^2.0.0", + "yoctocolors": "^2.1.1" }, "engines": { "node": ">=18" @@ -7392,30 +7430,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", - "license": "MIT", - "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/is-unicode-supported": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-1.3.0.tgz", - "integrity": "sha512-43r2mRvz+8JRIKnWJ+3j8JtjRKZ6GmjzfaE/qiBJnikNnYv/6bagRJ1kUhNk8R5EX/GkobD+r+sfxCPJsiKBLQ==", - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -7640,12 +7654,12 @@ } }, "node_modules/mute-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-3.0.0.tgz", + "integrity": "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==", "license": "ISC", "engines": { - "node": "^18.17.0 || >=20.5.0" + "node": "^20.17.0 || >=22.9.0" } }, "node_modules/nanoid": { @@ -7926,32 +7940,31 @@ } }, "node_modules/ora": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-8.2.0.tgz", - "integrity": "sha512-weP+BZ8MVNnlCm8c0Qdc1WSWq4Qn7I+9CJGm7Qali6g44e/PUzbjNqJX5NJ9ljlNMosfJvg1fKEGILklK9cwnw==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-9.2.0.tgz", + "integrity": "sha512-4sGT6oNDbqIuciDfD2aCkoPgHLmOe+g+xpFK2WDO0aQuD/bNHNwfdFosWP+DXmcxRyXeF8vnki6kXnOOHTuRSA==", "license": "MIT", "dependencies": { - "chalk": "^5.3.0", + "chalk": "^5.6.2", "cli-cursor": "^5.0.0", - "cli-spinners": "^2.9.2", + "cli-spinners": "^3.2.0", "is-interactive": "^2.0.0", - "is-unicode-supported": "^2.0.0", - "log-symbols": "^6.0.0", - "stdin-discarder": "^0.2.2", - "string-width": "^7.2.0", - "strip-ansi": "^7.1.0" + "is-unicode-supported": "^2.1.0", + "log-symbols": "^7.0.1", + "stdin-discarder": "^0.3.1", + "string-width": "^8.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/ansi-regex": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", - "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -7961,9 +7974,9 @@ } }, "node_modules/ora/node_modules/chalk": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", - "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz", + "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==", "license": "MIT", "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" @@ -7972,33 +7985,26 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ora/node_modules/emoji-regex": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", - "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", - "license": "MIT" - }, "node_modules/ora/node_modules/string-width": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", - "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-8.1.1.tgz", + "integrity": "sha512-KpqHIdDL9KwYk22wEOg/VIqYbrnLeSApsKT/bSj6Ez7pn3CftUiLAv2Lccpq1ALcpLV9UX1Ppn92npZWu2w/aw==", "license": "MIT", "dependencies": { - "emoji-regex": "^10.3.0", - "get-east-asian-width": "^1.0.0", + "get-east-asian-width": "^1.3.0", "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=18" + "node": ">=20" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ora/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -8010,15 +8016,6 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-defer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-4.0.1.tgz", @@ -8499,9 +8496,9 @@ ] }, "node_modules/qs": { - "version": "6.14.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", - "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", + "version": "6.14.1", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.1.tgz", + "integrity": "sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -8576,23 +8573,6 @@ "node": ">= 0.10" } }, - "node_modules/raw-body/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -8994,9 +8974,9 @@ } }, "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-4.0.6.tgz", + "integrity": "sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==", "license": "MIT", "engines": { "node": ">=0.12.0" @@ -9082,9 +9062,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/semver": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", - "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -9392,9 +9372,9 @@ } }, "node_modules/stdin-discarder": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.2.2.tgz", - "integrity": "sha512-UhDfHmA92YAlNnCfhmq0VeNL5bDbiZGg7sZ2IvPsXubGkiNa9EC+tUTsjBRsYUAz87btI6/1wf4XoVvQ3uRnmQ==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/stdin-discarder/-/stdin-discarder-0.3.1.tgz", + "integrity": "sha512-reExS1kSGoElkextOcPkel4NE99S0BWxjUHQeDFnR8S993JxpPX7KU4MNmO19NXhlJp+8dmdCbKQVNgLJh2teA==", "license": "MIT", "engines": { "node": ">=18" @@ -9441,6 +9421,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", @@ -9515,6 +9496,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -9687,18 +9669,6 @@ "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -9907,6 +9877,7 @@ "version": "8.3.2", "resolved": "https://registry.npmjs.org/typechain/-/typechain-8.3.2.tgz", "integrity": "sha512-x/sQYr5w9K7yv3es7jo4KTX05CLxOf7TRWwoHlrjRh8H82G64g+k7VuWPJlgMo6qrjfCulOdfBjiaDtmhFYD/Q==", + "peer": true, "dependencies": { "@types/prettier": "^2.1.1", "debug": "^4.3.1", @@ -10043,6 +10014,7 @@ "version": "4.9.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -10113,13 +10085,13 @@ } }, "node_modules/undici": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.22.0.tgz", - "integrity": "sha512-hU/10obOIu62MGYjdskASR3CUAiYaFTtC9Pa6vHyf//mAipSvSQg6od2CnJswq7fvzNS3zJhxoRkgNVaHurWKw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-7.20.0.tgz", + "integrity": "sha512-MJZrkjyd7DeC+uPZh+5/YaMDxFiiEEaDgbUSVMXayofAkDWF1088CDo+2RPg7B1BuS1qf1vgNE7xqwPxE0DuSQ==", "license": "MIT", "peer": true, "engines": { - "node": ">=18.17" + "node": ">=20.18.1" } }, "node_modules/undici-types": { @@ -10371,17 +10343,20 @@ } }, "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "license": "MIT", "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=8" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs": { @@ -10403,6 +10378,68 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "license": "MIT" + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10495,10 +10532,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/yoctocolors-cjs": { + "node_modules/yoctocolors": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.2.tgz", - "integrity": "sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.2.tgz", + "integrity": "sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==", "license": "MIT", "engines": { "node": ">=18" diff --git a/packages/sdk/package.json b/packages/sdk/package.json index f21b5cdb8..5f6d918b6 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -62,7 +62,7 @@ "debug": "^4.3.4", "ethers": "^6.13.2", "graphql-request": "^6.0.0", - "iexec": "^8.22.4", + "iexec": "^8.22.5", "jszip": "^3.7.1", "kubo-rpc-client": "^5.4.1", "magic-bytes.js": "^1.0.15", diff --git a/packages/sdk/src/config/config.ts b/packages/sdk/src/config/config.ts index 051ccece8..daff19696 100644 --- a/packages/sdk/src/config/config.ts +++ b/packages/sdk/src/config/config.ts @@ -59,7 +59,7 @@ export const DEFAULT_ARWEAVE_UPLOAD_API = 'https://arweave-api.iex.ec'; export const DEFAULT_ARWEAVE_GATEWAY = 'https://arweave.net'; export const ARWEAVE_FREE_UPLOAD_MAX_SIZE = 100 * 1024; // 100kb export const DEFAULT_DATA_NAME = ''; -export const SCONE_TAG = ['tee', 'scone']; +export const TEE_TAG = ['tee']; export const DEFAULT_MAX_PRICE = 0; export const MAX_DESIRED_DATA_ORDER_PRICE = 0; export const MAX_DESIRED_APP_ORDER_PRICE = 0; diff --git a/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts b/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts index dfbeb3961..c80024057 100644 --- a/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts +++ b/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts @@ -1,5 +1,6 @@ import { ZeroAddress } from 'ethers'; import { DATASET_INFINITE_VOLUME, NULL_ADDRESS } from 'iexec/utils'; +import { TEE_TAG } from '../../config/config.js'; import { ValidationError, WorkflowError, @@ -26,23 +27,6 @@ import { import { IExecConsumer } from '../types/internalTypes.js'; import { getGrantedAccess } from './getGrantedAccess.js'; -const inferTagFromAppMREnclave = (mrenclave: string) => { - const tag = ['tee']; - try { - const { framework } = JSON.parse(mrenclave); - if (framework.toLowerCase() === 'scone') { - tag.push('scone'); - return tag; - } - } catch (e) { - // noop - } - throw new WorkflowError({ - message: grantAccessErrorMessage, - errorCause: Error('App does not use a supported TEE framework'), - }); -}; - export const grantAccess = async ({ iexec = throwIfMissing(), protectedData, @@ -128,19 +112,14 @@ export const grantAccess = async ({ }); } - let tag; - const isDeployedApp = await iexec.app.checkDeployedApp(authorizedApp); - if (isDeployedApp) { - tag = await iexec.app.showApp(authorizedApp).then(({ app }) => { - return inferTagFromAppMREnclave(app.appMREnclave); - }); - } else if (await isERC734(iexec, authorizedApp)) { - tag = ['tee', 'scone']; - } else { + if ( + !(await iexec.app.checkDeployedApp(vAuthorizedApp)) && + !(await isERC734(iexec, vAuthorizedApp)) + ) { throw new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid app set for address ${authorizedApp}. The app either has an invalid tag (possibly non-TEE) or an invalid whitelist smart contract address.` + `Invalid authorized app address ${vAuthorizedApp}. No app nor whitelist smart contract deployed at address.` ), }); } @@ -157,7 +136,7 @@ export const grantAccess = async ({ requesterrestrict: vAuthorizedUser, datasetprice: vPricePerAccess, volume: vNumberOfAccess, - tag, + tag: TEE_TAG, }) .then((datasetorderTemplate) => iexec.order.signDatasetorder(datasetorderTemplate) diff --git a/packages/sdk/src/lib/dataProtectorCore/prepareBulkRequest.ts b/packages/sdk/src/lib/dataProtectorCore/prepareBulkRequest.ts index baef2a4a7..f999b9b2b 100644 --- a/packages/sdk/src/lib/dataProtectorCore/prepareBulkRequest.ts +++ b/packages/sdk/src/lib/dataProtectorCore/prepareBulkRequest.ts @@ -2,7 +2,7 @@ import { NULL_ADDRESS } from 'iexec/utils'; import { MAX_DESIRED_APP_ORDER_PRICE, MAX_DESIRED_WORKERPOOL_ORDER_PRICE, - SCONE_TAG, + TEE_TAG, } from '../../config/config.js'; import { ValidationError, @@ -190,7 +190,7 @@ export const prepareBulkRequest = async ({ workerpoolmaxprice: vWorkerpoolMaxPrice, volume, category: 0, - tag: SCONE_TAG, + tag: TEE_TAG, params: { bulk_cid: cid, iexec_input_files: vInputFiles, diff --git a/packages/sdk/src/lib/dataProtectorCore/processBulkRequest.ts b/packages/sdk/src/lib/dataProtectorCore/processBulkRequest.ts index 9c0a73068..3cbad9e61 100644 --- a/packages/sdk/src/lib/dataProtectorCore/processBulkRequest.ts +++ b/packages/sdk/src/lib/dataProtectorCore/processBulkRequest.ts @@ -1,5 +1,5 @@ import { sumTags } from 'iexec/utils'; -import { SCONE_TAG } from '../../config/config.js'; +import { TEE_TAG } from '../../config/config.js'; import { WorkflowError, processProtectedDataErrorMessage, @@ -127,8 +127,7 @@ export const processBulkRequest = async < const apporder = await iexec.orderbook .fetchAppOrderbook({ app: vRequestorder.app, - minTag: SCONE_TAG, - maxTag: SCONE_TAG, + minTag: TEE_TAG, workerpool: vWorkerpool, }) .then((appOrderbook) => { diff --git a/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts b/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts index 3ca626a81..4e78934e7 100644 --- a/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts +++ b/packages/sdk/src/lib/dataProtectorCore/processProtectedData.ts @@ -3,7 +3,7 @@ import { MAX_DESIRED_APP_ORDER_PRICE, MAX_DESIRED_DATA_ORDER_PRICE, MAX_DESIRED_WORKERPOOL_ORDER_PRICE, - SCONE_TAG, + TEE_TAG, } from '../../config/config.js'; import { WorkflowError, @@ -178,96 +178,97 @@ export const processProtectedData = async < title: 'FETCH_ORDERS', isDone: false, }); - const [ - datasetorderForApp, - datasetorderForWhitelist, - apporder, - workerpoolorder, - ] = await Promise.all([ - // Fetch dataset order - iexec.orderbook - .fetchDatasetOrderbook({ - dataset: vProtectedData, - app: vApp, - requester: requester, - }) - .then((datasetOrderbook) => { - const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( - (order) => order.order.datasetprice <= vDataMaxPrice - ); - return desiredPriceDataOrderbook[0]?.order; // may be undefined - }), - // Fetch dataset order for whitelist - iexec.orderbook - .fetchDatasetOrderbook({ - dataset: vProtectedData, - app: vUserWhitelist, - requester: requester, - }) - .then((datasetOrderbook) => { - const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( - (order) => order.order.datasetprice <= vDataMaxPrice - ); - return desiredPriceDataOrderbook[0]?.order; // may be undefined - }), - // Fetch app order - iexec.orderbook - .fetchAppOrderbook({ - app: vApp, - minTag: SCONE_TAG, - maxTag: SCONE_TAG, - workerpool: vWorkerpool, - }) - .then((appOrderbook) => { - const desiredPriceAppOrderbook = appOrderbook.orders.filter( - (order) => order.order.appprice <= vAppMaxPrice - ); - const desiredPriceAppOrder = desiredPriceAppOrderbook[0]?.order; - if (!desiredPriceAppOrder) { - throw new Error('No App order found for the desired price'); - } - return desiredPriceAppOrder; - }), - // Fetch workerpool order for App or AppWhitelist - Promise.all([ - // for app - iexec.orderbook.fetchWorkerpoolOrderbook({ - workerpool: vWorkerpool, - app: vApp, - dataset: vProtectedData, - requester: requester, // public orders + user specific orders - isRequesterStrict: useVoucher, // If voucher, we only want user specific orders - minTag: SCONE_TAG, - category: 0, - }), - // for app whitelist - iexec.orderbook.fetchWorkerpoolOrderbook({ - workerpool: vWorkerpool === ethers.ZeroAddress ? 'any' : vWorkerpool, - app: vUserWhitelist, - dataset: vProtectedData, - requester: requester, // public orders + user specific orders - isRequesterStrict: useVoucher, // If voucher, we only want user specific orders - minTag: SCONE_TAG, - category: 0, - }), - ]).then( - ([workerpoolOrderbookForApp, workerpoolOrderbookForAppWhitelist]) => { - const desiredPriceWorkerpoolOrder = filterWorkerpoolOrders({ - workerpoolOrders: [ - ...workerpoolOrderbookForApp.orders, - ...workerpoolOrderbookForAppWhitelist.orders, - ], - workerpoolMaxPrice: vWorkerpoolMaxPrice, - useVoucher: vUseVoucher, - userVoucher, - }); - if (!desiredPriceWorkerpoolOrder) { - throw new Error('No Workerpool order found for the desired price'); - } - return desiredPriceWorkerpoolOrder; + // Fetch app order first to determine TEE framework + const apporder = await iexec.orderbook + .fetchAppOrderbook({ + app: vApp, + minTag: TEE_TAG, + workerpool: vWorkerpool, + }) + .then((appOrderbook) => { + const desiredPriceAppOrderbook = appOrderbook.orders.filter( + (order) => order.order.appprice <= vAppMaxPrice + ); + const desiredPriceAppOrder = desiredPriceAppOrderbook[0]?.order; + if (!desiredPriceAppOrder) { + throw new Error('No App order found for the desired price'); } - ), - ]); + return desiredPriceAppOrder; + }); + const workerpoolMinTag = apporder.tag; + + const [datasetorderForApp, datasetorderForWhitelist, workerpoolorder] = + await Promise.all([ + // Fetch dataset order + iexec.orderbook + .fetchDatasetOrderbook({ + dataset: vProtectedData, + app: vApp, + requester: requester, + }) + .then((datasetOrderbook) => { + const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( + (order) => order.order.datasetprice <= vDataMaxPrice + ); + return desiredPriceDataOrderbook[0]?.order; // may be undefined + }), + // Fetch dataset order for whitelist + iexec.orderbook + .fetchDatasetOrderbook({ + dataset: vProtectedData, + app: vUserWhitelist, + requester: requester, + }) + .then((datasetOrderbook) => { + const desiredPriceDataOrderbook = datasetOrderbook.orders.filter( + (order) => order.order.datasetprice <= vDataMaxPrice + ); + return desiredPriceDataOrderbook[0]?.order; // may be undefined + }), + + // Fetch workerpool order for App or AppWhitelist + Promise.all([ + // for app + iexec.orderbook.fetchWorkerpoolOrderbook({ + workerpool: vWorkerpool, + app: vApp, + dataset: vProtectedData, + requester: requester, // public orders + user specific orders + isRequesterStrict: useVoucher, // If voucher, we only want user specific orders + minTag: workerpoolMinTag, + category: 0, + }), + // for app whitelist + iexec.orderbook.fetchWorkerpoolOrderbook({ + workerpool: + vWorkerpool === ethers.ZeroAddress ? 'any' : vWorkerpool, + app: vUserWhitelist, + dataset: vProtectedData, + requester: requester, // public orders + user specific orders + isRequesterStrict: useVoucher, // If voucher, we only want user specific orders + minTag: workerpoolMinTag, + category: 0, + }), + ]).then( + ([workerpoolOrderbookForApp, workerpoolOrderbookForAppWhitelist]) => { + const desiredPriceWorkerpoolOrder = filterWorkerpoolOrders({ + workerpoolOrders: [ + ...workerpoolOrderbookForApp.orders, + ...workerpoolOrderbookForAppWhitelist.orders, + ], + workerpoolMaxPrice: vWorkerpoolMaxPrice, + useVoucher: vUseVoucher, + userVoucher, + }); + if (!desiredPriceWorkerpoolOrder) { + throw new Error( + 'No Workerpool order found for the desired price' + ); + } + return desiredPriceWorkerpoolOrder; + } + ), + ]); if (!workerpoolorder) { throw new Error('No Workerpool order found for the desired price'); @@ -350,7 +351,7 @@ export const processProtectedData = async < appmaxprice: apporder.appprice, datasetmaxprice: datasetorder.datasetprice, workerpoolmaxprice: workerpoolorder.workerpoolprice, - tag: SCONE_TAG, + tag: TEE_TAG, workerpool: workerpoolorder.workerpool, params: { iexec_input_files: vInputFiles, diff --git a/packages/sdk/src/lib/dataProtectorCore/protectData.ts b/packages/sdk/src/lib/dataProtectorCore/protectData.ts index faf3d1736..cd12fa731 100644 --- a/packages/sdk/src/lib/dataProtectorCore/protectData.ts +++ b/packages/sdk/src/lib/dataProtectorCore/protectData.ts @@ -256,18 +256,13 @@ export const protectData = async ({ }, }); - // share secret with scone SMS + // share secret with SMS vOnStatusUpdate({ title: 'PUSH_SECRET_TO_SMS', isDone: false, - payload: { - teeFramework: 'scone', - }, }); await iexec.dataset - .pushDatasetSecret(protectedDataAddress, encryptionKey, { - teeFramework: 'scone', - }) + .pushDatasetSecret(protectedDataAddress, encryptionKey) .catch((e: Error) => { handleIfProtocolError(e); throw new WorkflowError({ @@ -278,9 +273,6 @@ export const protectData = async ({ vOnStatusUpdate({ title: 'PUSH_SECRET_TO_SMS', isDone: true, - payload: { - teeFramework: 'scone', - }, }); return { diff --git a/packages/sdk/tests/e2e/dataProtectorCore/getGrantedAccess.test.ts b/packages/sdk/tests/e2e/dataProtectorCore/getGrantedAccess.test.ts index a4fe23f12..0049e4a00 100644 --- a/packages/sdk/tests/e2e/dataProtectorCore/getGrantedAccess.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorCore/getGrantedAccess.test.ts @@ -1,7 +1,10 @@ import { describe, it, expect, beforeAll } from '@jest/globals'; import { HDNodeWallet, Wallet } from 'ethers'; import { IExec } from 'iexec'; -import { IExecDataProtectorCore } from '../../../src/index.js'; +import { MarketCallError } from 'iexec/errors'; +import { TEE_TAG } from '../../../src/config/config.js'; +import { IExecDataProtectorCore, WorkflowError } from '../../../src/index.js'; +import { pushRequesterSecret } from '../../../src/utils/pushRequesterSecret.js'; import { MAX_EXPECTED_BLOCKTIME, MAX_EXPECTED_WEB2_SERVICES_TIME, @@ -10,9 +13,6 @@ import { getTestConfig, getTestWeb3SignerProvider, } from '../../test-utils.js'; -import { WorkflowError } from '../../../src/index.js'; -import { MarketCallError } from 'iexec/errors'; -import { pushRequesterSecret } from '../../../src/utils/pushRequesterSecret.js'; async function consumeProtectedDataOrder( iexec: IExec, @@ -66,7 +66,7 @@ async function consumeProtectedDataOrder( appmaxprice: appOrder.appprice, datasetmaxprice: datasetOrder.datasetprice, workerpoolmaxprice: workerpoolOrder.workerpoolprice, - tag: '0x0000000000000000000000000000000000000000000000000000000000000003', // SCONE_TAG + tag: TEE_TAG, workerpool: workerpoolOrder.workerpool, params: { iexec_input_files: [], diff --git a/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts b/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts index e51464073..f7bfb033a 100644 --- a/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts @@ -30,7 +30,6 @@ describe('dataProtectorCore.grantAccess()', () => { let dataProtectorCore: IExecDataProtectorCore; let wallet: HDNodeWallet; let protectedData: ProtectedDataWithSecretProps; - let nonTeeAppAddress: string; let sconeAppAddress: string; const VALID_WHITELIST_CONTRACT = '0x680f6C2A2a6ce97ea632a7408b0E673396dd5581'; const INVALID_WHITELIST_CONTRACT = @@ -45,17 +44,13 @@ describe('dataProtectorCore.grantAccess()', () => { dataProtectorCore.protectData({ data: { doNotUse: 'test' }, }), - deployRandomApp({ - ethProvider: getTestConfig(Wallet.createRandom().privateKey)[0], - }), deployRandomApp({ ethProvider: getTestConfig(Wallet.createRandom().privateKey)[0], teeFramework: 'scone', }), ]); protectedData = results[0]; - nonTeeAppAddress = results[1]; - sconeAppAddress = results[2]; + sconeAppAddress = results[1]; }, 6 * MAX_EXPECTED_BLOCKTIME + MAX_EXPECTED_WEB2_SERVICES_TIME); let input: any; @@ -147,15 +142,15 @@ describe('dataProtectorCore.grantAccess()', () => { ); it( - 'infers the tag to use with a Scone app', + 'sets the TEE tag with a Scone app', async () => { const grantedAccess = await dataProtectorCore.grantAccess({ ...input, authorizedApp: sconeAppAddress, }); expect(grantedAccess.tag).toBe( - '0x0000000000000000000000000000000000000000000000000000000000000003' - ); // ['tee', 'scone'] + '0x0000000000000000000000000000000000000000000000000000000000000001' + ); }, MAX_EXPECTED_WEB2_SERVICES_TIME ); @@ -167,7 +162,7 @@ describe('dataProtectorCore.grantAccess()', () => { new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid app set for address ${input.authorizedApp}. The app either has an invalid tag (possibly non-TEE) or an invalid whitelist smart contract address.` + `Invalid authorized app address ${input.authorizedApp.toLowerCase()}. No app nor whitelist smart contract deployed at address.` ), }) ); @@ -175,24 +170,6 @@ describe('dataProtectorCore.grantAccess()', () => { MAX_EXPECTED_WEB2_SERVICES_TIME ); - it( - 'fails if the app is not a TEE app', - async () => { - await expect( - dataProtectorCore.grantAccess({ - ...input, - authorizedApp: nonTeeAppAddress, - }) - ).rejects.toThrow( - new WorkflowError({ - message: grantAccessErrorMessage, - errorCause: Error('App does not use a supported TEE framework'), - }) - ); - }, - MAX_EXPECTED_WEB2_SERVICES_TIME - ); - it( 'fails if the whitelist SC is not valid', async () => { @@ -205,7 +182,7 @@ describe('dataProtectorCore.grantAccess()', () => { new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid app set for address ${INVALID_WHITELIST_CONTRACT}. The app either has an invalid tag (possibly non-TEE) or an invalid whitelist smart contract address.` + `Invalid authorized app address ${INVALID_WHITELIST_CONTRACT.toLowerCase()}. No app nor whitelist smart contract deployed at address.` ), }) ); @@ -214,15 +191,15 @@ describe('dataProtectorCore.grantAccess()', () => { ); it( - 'infers the tag to use with a whitelist smart contract', + 'sets the TEE tag with a whitelist smart contract', async () => { const grantedAccess = await dataProtectorCore.grantAccess({ ...input, authorizedApp: VALID_WHITELIST_CONTRACT, }); expect(grantedAccess.tag).toBe( - '0x0000000000000000000000000000000000000000000000000000000000000003' - ); // ['tee', 'scone'] + '0x0000000000000000000000000000000000000000000000000000000000000001' + ); }, MAX_EXPECTED_WEB2_SERVICES_TIME ); diff --git a/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts b/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts index 55ec4de36..eb1d7ad97 100644 --- a/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts +++ b/packages/sdk/tests/unit/dataProtectorCore/processProtectedData/processProtectedData.test.ts @@ -2,7 +2,6 @@ import { describe, expect, it, jest } from '@jest/globals'; import { ZeroAddress } from 'ethers'; import { Address } from 'iexec'; import { ValidationError } from 'yup'; -import { SCONE_TAG } from '../../../../src/config/config.js'; import { type ProcessProtectedData } from '../../../../src/lib/dataProtectorCore/processProtectedData.js'; import { WorkflowError, @@ -496,7 +495,7 @@ describe('processProtectedData', () => { dataset: expect.any(String), requester: expect.any(String), category: 0, - minTag: SCONE_TAG, + minTag: expect.any(String), isRequesterStrict: expect.any(Boolean), }) ); diff --git a/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts b/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts index d6c477055..d735eccde 100644 --- a/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts +++ b/packages/sdk/tests/unit/dataProtectorCore/protectData.test.ts @@ -403,16 +403,10 @@ describe('protectData()', () => { expect(onStatusUpdateMock).toHaveBeenNthCalledWith(13, { title: 'PUSH_SECRET_TO_SMS', isDone: false, - payload: { - teeFramework: expect.any(String), - }, }); expect(onStatusUpdateMock).toHaveBeenNthCalledWith(14, { title: 'PUSH_SECRET_TO_SMS', isDone: true, - payload: { - teeFramework: expect.any(String), - }, }); }); @@ -670,16 +664,10 @@ describe('protectData()', () => { expect(onStatusUpdateMock).toHaveBeenNthCalledWith(13, { title: 'PUSH_SECRET_TO_SMS', isDone: false, - payload: { - teeFramework: expect.any(String), - }, }); expect(onStatusUpdateMock).toHaveBeenNthCalledWith(14, { title: 'PUSH_SECRET_TO_SMS', isDone: true, - payload: { - teeFramework: expect.any(String), - }, }); }); From 9ec6b53caaa764315c5e90b978c4f588a51b2d45 Mon Sep 17 00:00:00 2001 From: Pierre Jeanjacquot <26487010+PierreJeanjacquot@users.noreply.github.com> Date: Wed, 4 Feb 2026 17:16:14 +0100 Subject: [PATCH 2/3] ci: update node version --- .github/workflows/sdk-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sdk-ci.yml b/.github/workflows/sdk-ci.yml index 286715559..580b8a2cb 100644 --- a/.github/workflows/sdk-ci.yml +++ b/.github/workflows/sdk-ci.yml @@ -21,7 +21,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: 'npm' cache-dependency-path: packages/sdk/package-lock.json @@ -48,7 +48,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: 'npm' cache-dependency-path: packages/sdk/package-lock.json @@ -80,7 +80,7 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: 18 + node-version: 20 cache: 'npm' cache-dependency-path: packages/sdk/package-lock.json From 41a26285c1d419f8c4aa6e8cb1ed33703a5748bd Mon Sep 17 00:00:00 2001 From: paypes <43441600+abbesBenayache@users.noreply.github.com> Date: Thu, 5 Feb 2026 14:51:31 +0100 Subject: [PATCH 3/3] fix: correct typo in error message --- packages/sdk/src/lib/dataProtectorCore/grantAccess.ts | 2 +- packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts b/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts index c80024057..7c4a9b129 100644 --- a/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts +++ b/packages/sdk/src/lib/dataProtectorCore/grantAccess.ts @@ -119,7 +119,7 @@ export const grantAccess = async ({ throw new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid authorized app address ${vAuthorizedApp}. No app nor whitelist smart contract deployed at address.` + `Invalid authorized app address ${vAuthorizedApp}. No app or whitelist smart contract deployed at address.` ), }); } diff --git a/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts b/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts index f7bfb033a..79f3ea4dc 100644 --- a/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts +++ b/packages/sdk/tests/e2e/dataProtectorCore/grantAccess.test.ts @@ -162,7 +162,7 @@ describe('dataProtectorCore.grantAccess()', () => { new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid authorized app address ${input.authorizedApp.toLowerCase()}. No app nor whitelist smart contract deployed at address.` + `Invalid authorized app address ${input.authorizedApp.toLowerCase()}. No app or whitelist smart contract deployed at address.` ), }) ); @@ -182,7 +182,7 @@ describe('dataProtectorCore.grantAccess()', () => { new WorkflowError({ message: grantAccessErrorMessage, errorCause: Error( - `Invalid authorized app address ${INVALID_WHITELIST_CONTRACT.toLowerCase()}. No app nor whitelist smart contract deployed at address.` + `Invalid authorized app address ${INVALID_WHITELIST_CONTRACT.toLowerCase()}. No app or whitelist smart contract deployed at address.` ), }) );