diff --git a/.github/workflows/sharing-smart-contract-test.yml b/.github/workflows/sharing-smart-contract-test.yml index ea7cf3922..e15403958 100644 --- a/.github/workflows/sharing-smart-contract-test.yml +++ b/.github/workflows/sharing-smart-contract-test.yml @@ -83,13 +83,16 @@ jobs: echo "Error: Anvil did not start within the timeout period." exit 1 - - name: Hardhat Tests + - name: Upgrade test working-directory: packages/sharing-smart-contract - run: npm run test -- --network ci-bellecour-fork + run: npm run upgrade-local-fork -- --network local-bellecour-fork - - name: Upgrade Test + # TODO check why the CI does not fail when the following error occurs + # (when the RPC node is not available): + # 1) Uncaught error outside test suite + - name: Hardhat tests working-directory: packages/sharing-smart-contract - run: npm run upgrade-local-fork -- --network local-bellecour-fork + run: npm run test -- --network local-bellecour-fork - name: Set Directory Permissions working-directory: packages/sharing-smart-contract diff --git a/environments/README.md b/environments/README.md index 9e5cf92ac..8011313cf 100644 --- a/environments/README.md +++ b/environments/README.md @@ -24,7 +24,7 @@ import { getEnvironment } from "@iexec/dataprotector-environments"; const { smsUrl, iexecGatewayUrl, - resultProxyUrl, + resultProxyUrl, // TODO remove ipfsGatewayUrl, ipfsNodeUrl, workerpoolProdAddress, diff --git a/environments/common/utils.js b/environments/common/utils.js index 927bdd2f5..2ff506c4e 100644 --- a/environments/common/utils.js +++ b/environments/common/utils.js @@ -6,7 +6,7 @@ export const KNOWN_KEYS = [ // iexec protocol config "smsUrl", "iexecGatewayUrl", - "resultProxyUrl", + "resultProxyUrl", // TODO remove "ipfsGatewayUrl", "ipfsNodeUrl", "workerpoolProdAddress", diff --git a/environments/types/index.d.ts b/environments/types/index.d.ts index 437e8341e..b5e38889b 100644 --- a/environments/types/index.d.ts +++ b/environments/types/index.d.ts @@ -2,7 +2,7 @@ export declare type KnownEnv = "prod" | "staging"; export declare type EnvKey = | "smsUrl" | "iexecGatewayUrl" - | "resultProxyUrl" + | "resultProxyUrl" // TODO remove | "ipfsGatewayUrl" | "ipfsNodeUrl" /** diff --git a/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json b/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json index 8ea079bb1..9f61f3582 100644 --- a/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json +++ b/packages/sdk/abis/sharing/DataProtectorSharing.sol/DataProtectorSharing.json @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv", diff --git a/packages/sdk/tests/test-utils.ts b/packages/sdk/tests/test-utils.ts index 25d3fc288..ddfaccfd1 100644 --- a/packages/sdk/tests/test-utils.ts +++ b/packages/sdk/tests/test-utils.ts @@ -17,7 +17,7 @@ const TEST_CHAIN = { smsDebugURL: DRONE ? 'http://sms-debug:13300' : 'http://127.0.0.1:13301', resultProxyURL: DRONE ? 'http://result-proxy:13200' - : 'http://127.0.0.1:13200', + : 'http://127.0.0.1:13200', // TODO remove iexecGatewayURL: DRONE ? 'http://market-api:3000' : 'http://127.0.0.1:3000', provider: new JsonRpcProvider( DRONE ? 'http://bellecour-fork:8545' : 'http://localhost:8545' diff --git a/packages/sharing-smart-contract/CHANGELOG.md b/packages/sharing-smart-contract/CHANGELOG.md index 8a9f1d845..ee59bd8ba 100644 --- a/packages/sharing-smart-contract/CHANGELOG.md +++ b/packages/sharing-smart-contract/CHANGELOG.md @@ -6,6 +6,7 @@ All notable changes to this project will be documented in this file. ### Changed +- [BREAKING] Remove result proxy url from contract config and deal params (#438). - Fix Sharing contract constructor arguments order (#433) - Update blockscout url diff --git a/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json b/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json index 8ea079bb1..9f61f3582 100644 --- a/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json +++ b/packages/sharing-smart-contract/abis/DataProtectorSharing.sol/DataProtectorSharing.json @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv", diff --git a/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol b/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol index 877bd1800..5c03d46fa 100644 --- a/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol +++ b/packages/sharing-smart-contract/contracts/DataProtectorSharing.sol @@ -72,7 +72,7 @@ contract DataProtectorSharing is __AccessControl_init(); _grantRole(DEFAULT_ADMIN_ROLE, msg.sender); - updateEnv("ipfs", "https://result.v8-bellecour.iex.ec"); + updateEnv("ipfs"); } /*************************************************************************** @@ -261,11 +261,9 @@ contract DataProtectorSharing is * Admin * **************************************************************************/ function updateEnv( - string memory iexecResultStorageProvider_, - string memory iexecResultStorageProxy_ + string memory iexecResultStorageProvider_ ) public onlyRole(DEFAULT_ADMIN_ROLE) { _iexecResultStorageProvider = iexecResultStorageProvider_; - _iexecResultStorageProxy = iexecResultStorageProxy_; } /*************************************************************************** diff --git a/packages/sharing-smart-contract/contracts/ManageOrders.sol b/packages/sharing-smart-contract/contracts/ManageOrders.sol index 74debf956..3f3c2a2c1 100644 --- a/packages/sharing-smart-contract/contracts/ManageOrders.sol +++ b/packages/sharing-smart-contract/contracts/ManageOrders.sol @@ -38,6 +38,8 @@ abstract contract ManageOrders { 0x0000000000000000000000000000000000000000000000000000000000000003; // [tee,scone] uint256 internal constant TRUST = 0; // No replication string internal _iexecResultStorageProvider; + // [WARNING] This value is not used anymore but it must be kept + // to not break deployed proxies when upgrading them. string internal _iexecResultStorageProxy; uint256 private _salt; @@ -166,8 +168,6 @@ abstract contract ManageOrders { '{"iexec_result_encryption":true', // solhint-disable-line quotes ',"iexec_result_storage_provider":"', // solhint-disable-line quotes _iexecResultStorageProvider, - '","iexec_result_storage_proxy":"', // solhint-disable-line quotes - _iexecResultStorageProxy, '"}' // solhint-disable-line quotes ); } diff --git a/packages/sharing-smart-contract/hardhat.config.cjs b/packages/sharing-smart-contract/hardhat.config.cjs index 2788665e2..d89e22a48 100644 --- a/packages/sharing-smart-contract/hardhat.config.cjs +++ b/packages/sharing-smart-contract/hardhat.config.cjs @@ -2,6 +2,7 @@ require('@nomicfoundation/hardhat-foundry'); require('@nomicfoundation/hardhat-toolbox'); require('@openzeppelin/hardhat-upgrades'); require('hardhat-contract-sizer'); +require('@openzeppelin/hardhat-upgrades'); require('dotenv').config(); const { WALLET_PRIVATE_KEY } = process.env; @@ -17,7 +18,6 @@ const bellecourBase = { */ module.exports = { // run `npx hardhat node` to start the forked bellecour node "local-bellecour-fork" - defaultNetwork: 'local-bellecour-fork', networks: { hardhat: { ...bellecourBase, @@ -31,10 +31,6 @@ module.exports = { ...bellecourBase, url: 'http://127.0.0.1:8545', }, - 'ci-bellecour-fork': { - ...bellecourBase, - url: 'http://bellecour-fork:8545', - }, bellecour: { ...bellecourBase, url: 'https://bellecour.iex.ec', diff --git a/packages/sharing-smart-contract/scripts/updateEnv.js b/packages/sharing-smart-contract/scripts/updateEnv.js index eb7be8f2f..71d368b11 100644 --- a/packages/sharing-smart-contract/scripts/updateEnv.js +++ b/packages/sharing-smart-contract/scripts/updateEnv.js @@ -7,11 +7,14 @@ const { ethers } = pkg; async function main() { const { ENV } = env; console.log(`using ENV: ${ENV}`); - const { dataprotectorSharingContractAddress, resultProxyUrl } = getEnvironment(ENV); + const { dataprotectorSharingContractAddress } = getEnvironment(ENV); - const newEnv = ['ipfs', resultProxyUrl]; + const newResultStorageProvider = 'ipfs'; - console.log(`UpdateEnv Contract at ${dataprotectorSharingContractAddress} with [${newEnv}]`); + console.log( + `UpdateEnv contract at ${dataprotectorSharingContractAddress} ` + + `[newResultStorageProvider=${newResultStorageProvider}]`, + ); const [admin] = await ethers.getSigners(); console.log(`using wallet ${admin.address}`); @@ -20,7 +23,7 @@ async function main() { dataprotectorSharingContractAddress, ); - const updateEnvTx = await dataProtectorSharingContract.updateEnv(...newEnv); + const updateEnvTx = await dataProtectorSharingContract.updateEnv(newResultStorageProvider); console.log(`tx: ${updateEnvTx.hash}`); await updateEnvTx.wait(); diff --git a/packages/subgraph/abis/DataProtectorSharingABI.json b/packages/subgraph/abis/DataProtectorSharingABI.json index 8ea079bb1..9f61f3582 100644 --- a/packages/subgraph/abis/DataProtectorSharingABI.json +++ b/packages/subgraph/abis/DataProtectorSharingABI.json @@ -2007,11 +2007,6 @@ "internalType": "string", "name": "iexecResultStorageProvider_", "type": "string" - }, - { - "internalType": "string", - "name": "iexecResultStorageProxy_", - "type": "string" } ], "name": "updateEnv",