Skip to content

Conversation

@0xh3rman
Copy link
Contributor

@0xh3rman 0xh3rman commented Dec 12, 2025

Needs gemwalletcom/core#840

  • Refactored SignMessageSceneViewModel to use chain-specific signature schemes and digest signing, improving support for multiple chains.
  • Updated ChainSigner to delegate message signing to GemChainSigner and handle both raw and typed messages. Updated core submodule.
  • Adapt MessageSigner from gemstone

Refactored SignMessageSceneViewModel to use chain-specific signature schemes and digest signing, improving support for multiple chains. Added Chain+SignatureScheme extension to map chains to their signature schemes. Updated ChainSigner to delegate message signing to GemChainSigner and handle both raw and typed messages. Updated core submodule.
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @0xh3rman, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly refactors the message signing infrastructure to enhance multi-chain compatibility and streamline the signing process. It introduces a more modular approach by defining chain-specific signature schemes and centralizing message signing delegation, ensuring robust and flexible handling of various blockchain message types.

Highlights

  • Refactored Message Signing Logic: The SignMessageSceneViewModel has been refactored to utilize chain-specific signature schemes and digest signing, significantly improving support for various blockchain networks.
  • Chain Signature Scheme Extension: A new extension, Chain+SignatureScheme, has been introduced to provide a clear mapping between different blockchain chains and their appropriate GemSignatureScheme (e.g., Ed25519 for Solana, secp256k1 for Ethereum).
  • Unified ChainSigner: The ChainSigner has been updated to delegate all message signing operations to GemChainSigner and now consistently handles both raw and typed messages, simplifying its internal logic and promoting a more unified approach.
  • Core Submodule Update: The core submodule has been updated to a newer commit, indicating integration with related upstream changes.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the message signing logic to better support multiple chains. The changes in SignMessageSceneViewModel and ChainSigner are a good step towards centralizing and simplifying the signing process. The introduction of the Chain+SignatureScheme extension helps in abstracting signature algorithms.

My review includes two main points. First, I've suggested an improvement to the SignMessageSceneViewModel to further abstract away chain-specific signing logic, which would improve maintainability. Second, I've pointed out a potential robustness issue in the new Chain+SignatureScheme extension and suggested a more resilient design for the future. Overall, this is a positive refactoring.

Replaced usage of SignMessageDecoder and CryptoSigner with the new MessageSigner class in both the service and view model. Updated related tests and renamed SignMessageDecoderTests to MessageSignerTests. This change streamlines message signing and preview logic under a single class.
@0xh3rman 0xh3rman changed the title Refactor message signing logic and add signature scheme extension Refactor message signing Dec 12, 2025
@gemcoder21 gemcoder21 merged commit 6910e8b into main Dec 12, 2025
3 checks passed
@gemcoder21 gemcoder21 deleted the chain-signer-message branch December 12, 2025 19:32
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