Skip to content

Conversation

@PierreJeanjacquot
Copy link
Member

@PierreJeanjacquot PierreJeanjacquot commented Jul 22, 2025

iExec Compass service fallbacks ENS-based configuration for chains that don't support ENS
The service is notably used to get workerpools API URL

  • added experimental compassURL in IExecModule constructor options and compass in chain.json
  • added compass default URL for arbitrum-sepolia
  • added experimental resolveCompassURL() method to IExecModule
  • added workerpool API URL resolution against compass when compass URL is provided

@github-actions
Copy link

github-actions bot commented Jul 22, 2025

🐳 Hadolint Dockerfile Lint Results

Click to expand detailed results
Dockerfile:18 DL3059 info: Multiple consecutive `RUN` instructions. Consider consolidation.
Dockerfile:19 DL3016 warning: Pin versions in npm. Instead of `npm install <package>` use `npm install <package>@<version>`
Dockerfile:19 DL3059 info: Multiple consecutive `RUN` instructions. Consider consolidation.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds the iExec Compass service as a fallback for legacy ENS-based configuration resolution on chains that don't support ENS. The service is primarily used to get workerpool API URLs.

  • Adds experimental compassURL configuration option and resolveCompassURL() method to IExecModule
  • Updates workerpool API URL resolution to use Compass when available, falling back to ENS
  • Adds Compass API error handling with new CompassCallError class

Reviewed Changes

Copilot reviewed 15 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/lib/IExecConfig.js Adds compassURL configuration option and resolveCompassURL method
src/common/execution/debug.js Updates workerpool API URL resolution to use Compass before ENS fallback
src/lib/IExecWorkerpoolModule.js Passes compass URL to getWorkerpoolApiUrl function
src/lib/IExecTaskModule.js Updates task-related functions to use compass URL
src/common/utils/config.js Adds compass configuration for arbitrum-sepolia-testnet
src/common/utils/errors.js Adds CompassCallError class for compass API error handling
test/lib/e2e/IExecWorkerpoolModule.test.js Adds test for compass-based workerpool URL resolution
src/cli/cmd/iexec-workerpool.js Updates CLI commands to pass compass URL
src/cli/cmd/iexec-task.js Updates CLI task commands to use compass URL
src/cli/utils/fs.js Adds compass field to chain configuration schema
docs/* Updates documentation for new compass functionality

@abbesBenayache
Copy link
Contributor

could we add tests for resolveCompassURL()? to handle the case when Compass is unavailable also with different chain IDs should be considered

@abbesBenayache abbesBenayache self-requested a review July 22, 2025 14:06
@PierreJeanjacquot
Copy link
Member Author

could we add tests for resolveCompassURL()? to handle the case when Compass is unavailable also with different chain IDs should be considered

added service unavailable tests

@sonarqubecloud
Copy link

@PierreJeanjacquot PierreJeanjacquot merged commit 31d4a28 into master Jul 22, 2025
10 checks passed
@PierreJeanjacquot PierreJeanjacquot deleted the feat/compass-resolution branch July 22, 2025 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants