Skip to content

Blasrodri/migrate hyp to ev prover#285

Open
blasrodri wants to merge 11 commits intodamian/add-create-ism-commandfrom
blasrodri/migrate-hyp-to-ev-prover
Open

Blasrodri/migrate hyp to ev prover#285
blasrodri wants to merge 11 commits intodamian/add-create-ism-commandfrom
blasrodri/migrate-hyp-to-ev-prover

Conversation

@blasrodri
Copy link
Copy Markdown
Contributor

Overview

This change consolidates all Hyperlane ISM, mailbox, and warp token
management operations into the ev-prover CLI, replacing the Go-based
hyp CLI tool.

Changes:
- Added comprehensive CLI commands for ISM operations:
  * create-ism: Support for ZK, Noop, and Multisig ISMs
  * create-mailbox: Mailbox creation with ISM configuration
  * create-hook: Noop and Merkle Tree hook creation
  * create-warp-token: Collateral token creation
  * enroll-router: Remote router enrollment for warp routes
  * announce-validator: Validator announcement for multisig ISMs
  * deploy-stack: Full end-to-end Hyperlane stack deployment

- Added hyperlane_messages.rs to celestia-grpc-client:
  * Manual proto message definitions for ISM, hooks, and mailbox
  * IntoProtobufAny trait implementations for all message types
  * Avoids complex proto generation dependencies

- Extended command.rs with implementation for all new commands:
  * create_ism: Handles ZK, Noop, and Multisig ISM creation
  * create_hook: Creates Noop or Merkle Tree hooks
  * create_mailbox: Creates mailbox with ISM and hook configuration
  * create_warp_token: Creates collateral warp tokens
  * enroll_router: Enrolls remote routers for cross-chain transfers
  * announce_validator: Announces validators for multisig ISMs
  * deploy_stack: Orchestrates full stack deployment

Benefits:
- Single Rust tool for all ISM operations
- Better type safety and error handling
- Consistent with existing ev-prover workflows
- Eliminates need for separate Go tooling
…ting

- Fixed MsgCreateMailbox proto field tags to match hyperlane-cosmos proto definition
  - local_domain is now tag 2 (was 3)
  - default_ism is now tag 3 (was 2)
- Added automatic validator sorting for MerkleRootMultisigIsm creation
  - Validators must be sorted in ascending order as required by the chain
  - Added info logging to show sorted validator list

These fixes resolve transaction submission errors during mailbox creation
and multisig ISM creation.
@blasrodri blasrodri changed the base branch from main to damian/add-create-ism-command October 31, 2025 16:16
…ules

Add proto/hyperlane/core/v1/ism_hooks.proto which imports the ISM and hook
modules from the hyperlane-cosmos BSR dependency. This enables buf to
generate Rust types for all Hyperlane messages including:
- hyperlane.core.interchain_security.v1 (ISM creation)
- hyperlane.core.post_dispatch.v1 (hook creation)

Future work can migrate from manual hyperlane_messages.rs to fully
buf-generated types while keeping manual IntoProtobufAny trait
implementations for Cosmos transaction submission.
@damiannolan
Copy link
Copy Markdown
Collaborator

I'm happy to migrate the hyp client functionality to rust if you find it easier to work with.
I would suggest that we should add all of these CLI commands for hyperlane core stack deployment to a separate binary and not include them in ev-prover though. See #266 (comment)

This would be good for general separation of concerns, since the ev-prover service does not really care about multisig bridges etc.

@blasrodri
Copy link
Copy Markdown
Contributor Author

I'm happy to migrate the hyp client functionality to rust if you find it easier to work with. I would suggest that we should add all of these CLI commands for hyperlane core stack deployment to a separate binary and not include them in ev-prover though. See #266 (comment)

This would be good for general separation of concerns, since the ev-prover service does not really care about multisig bridges etc.

Understood. Will address this :)

Separate Hyperlane deployment operations from ev-prover into a new
hyp-cli binary. The ev-prover retains ZK ISM creation by reusing
hyp-cli as a library dependency.
Add proto dependencies and generated Rust bindings for ISM and post-dispatch modules.
@blasrodri blasrodri force-pushed the blasrodri/migrate-hyp-to-ev-prover branch from 8fc565b to 7eae30e Compare November 3, 2025 16:27
@blasrodri blasrodri marked this pull request as ready for review November 9, 2025 01:00
@blasrodri blasrodri self-assigned this Nov 9, 2025
@@ -0,0 +1,84 @@
syntax = "proto3";

package amino;
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

i probably need to be able to import this differently

- Remove proto-deps/ directory containing vendored cosmos, gogoproto, and hyperlane proto files
- All dependencies now fetched from Buf Schema Registry as declared in buf.yaml
- Update README with simplified proto generation instructions
…gistry

- Remove hyperlane_messages.rs (manually defined types)
- Remove ism_hooks.proto placeholder file
- Remove empty amino.rs and gogoproto.rs stub files
- Add proto_ext.rs with prost::Name implementations for generated types
- Update lib.rs to re-export generated proto types
- Fix hyp-cli to work with generated struct signatures
- Remove 7 unused generated proto files (1,918 lines)
- Remove empty proto/hyperlane directory
- Format imports with cargo fmt
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