Skip to content

Conversation

PierreJeanjacquot
Copy link
Member

@PierreJeanjacquot PierreJeanjacquot commented Jul 15, 2025

wallet management for non-gasless chains

full spec https://iexecproject.atlassian.net/wiki/spaces/IP/pages/3903684674/E+Support+Arbitrum+in+iApp+Generator

features

  • possibility to import wallet with iapp wallet import
  • possibility to choose wallet from imported with iapp wallet select
  • encrypted wallet storage
  • ask for confirmation before sending tx (iapp deploy and iapp run)
  • ensure balances when required (iapp deploy and iapp run)
  • EXPERIMENTAL_NETWORKS feature flag
  • abitrum-sepolia-testnet added as experimental network

misc

  • user address is now derived from wallet
  • minor spinner fixes

@PierreJeanjacquot PierreJeanjacquot force-pushed the feat/import-wallet branch 3 times, most recently from 951cdb6 to 5ce11e6 Compare July 15, 2025 14:53
@PierreJeanjacquot PierreJeanjacquot changed the title feat: multichain support feat: multichain support with wallet management Jul 15, 2025
Copilot

This comment was marked as outdated.

Copy link
Contributor

@Copilot 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 multichain wallet management support to the iApp CLI, enabling operations on non-gasless chains like Arbitrum. The implementation includes encrypted wallet storage, transaction confirmation prompts, and balance checking to improve user experience and security.

  • Replaces private key-based wallet handling with a comprehensive wallet management system
  • Adds support for experimental networks (starting with Arbitrum Sepolia testnet) behind a feature flag
  • Implements balance verification and transaction fee warnings for non-gasless chains

Reviewed Changes

Copilot reviewed 26 out of 27 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
cli/src/utils/keystore.ts New wallet storage utility with encryption/decryption functionality
cli/src/cli-helpers/askForWallet.ts Replaces private key prompts with wallet management interface
cli/src/cmd/wallet-*.ts New wallet import/select commands for wallet management
cli/src/cmd/deploy.ts Updated to use new wallet system and balance checking
cli/src/cmd/run.ts Updated to use new wallet system with transaction confirmations
cli/src/utils/iexec.ts Modified to accept signers instead of private keys
cli/src/config/config.ts Added experimental network configuration
Files not reviewed (1)
  • cli/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)

cli/src/utils/keystore.ts:48

  • Typo in warning message: 'de replaced' should be 'be replaced'
  }

@PierreJeanjacquot PierreJeanjacquot marked this pull request as ready for review July 15, 2025 15:42
@Le-Caignec Le-Caignec self-requested a review July 21, 2025 08:41
@Le-Caignec
Copy link
Collaborator

Why continue generating a random wallet during project initialization, even if the wallet will be empty and unusable on Arbitrum?

Co-authored-by: Robin Le Caignec <72495599+Le-Caignec@users.noreply.github.com>
@PierreJeanjacquot
Copy link
Member Author

Why continue generating a random wallet during project initialization, even if the wallet will be empty and unusable on Arbitrum?

We want the process to be as easy as possible on bellecour, which will be the only free sandbox environment.
Generating the wallet allows us to not bother the user with importing private keys until we need a funded wallet.

Copy link
Collaborator

@Le-Caignec Le-Caignec left a comment

Choose a reason for hiding this comment

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

LGTM

@PierreJeanjacquot PierreJeanjacquot merged commit c303529 into main Jul 21, 2025
3 checks passed
@PierreJeanjacquot PierreJeanjacquot deleted the feat/import-wallet branch July 21, 2025 12:58
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.

2 participants