Skip to content

test(ethexe): append test where injected tx sent to one-of-us on mainnet#5291

Open
grishasobol wants to merge 6 commits intomasterfrom
gsobol/ethexe/mainnet-test
Open

test(ethexe): append test where injected tx sent to one-of-us on mainnet#5291
grishasobol wants to merge 6 commits intomasterfrom
gsobol/ethexe/mainnet-test

Conversation

@grishasobol
Copy link
Copy Markdown
Member

No description provided.

@semanticdiff-com
Copy link
Copy Markdown

semanticdiff-com Bot commented Apr 7, 2026

Review changes with  SemanticDiff

Changed Files
File Status
  ethexe/rpc/src/apis/injected.rs  58% smaller
  ethexe/consensus/src/validator/initial.rs  43% smaller
  ethexe/consensus/src/connect/mod.rs  41% smaller
  ethexe/common/src/consensus.rs  30% smaller
  ethexe/service/src/tests/utils/env.rs  17% smaller
  Cargo.lock Unsupported file format
  ethexe/common/src/primitives.rs  0% smaller
  ethexe/consensus/src/validator/core.rs  0% smaller
  ethexe/consensus/src/validator/mock.rs  0% smaller
  ethexe/consensus/src/validator/mod.rs  0% smaller
  ethexe/service/Cargo.toml Unsupported file format
  ethexe/service/src/lib.rs Unsupported file format
  ethexe/service/tests/injected_tx.rs  0% smaller

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 introduces a new integration test case designed to validate the functionality of sending injected transactions to a specific destination on the mainnet. The test ensures that the transaction lifecycle, including signing and subscription-based monitoring, operates correctly within the current infrastructure.

Highlights

  • New Integration Test: Added a new integration test to verify the submission of injected transactions to the 'OneOfUs' contract on the mainnet.
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.

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
Copy Markdown
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 introduces a new integration test, send_injected_tx_join_us, in ethexe/service/tests/injected_tx.rs. The test simulates the process of creating, signing, and sending an injected transaction to a validator RPC on the Vara network and then waiting for the transaction promise. A minor improvement was suggested to fix an incomplete log message within the test execution flow.

Comment thread ethexe/service/tests/injected_tx.rs Outdated
.await
.unwrap();

println!("Waiting for promise to ...");
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The log message appears to be incomplete or contains a typo ('Waiting for promise to ...').

Suggested change
println!("Waiting for promise to ...");
println!("Waiting for promise...");

Base automatically changed from gsobol/ethexe/slots-genesis-ts to master April 7, 2026 18:16
Comment thread ethexe/service/tests/injected_tx.rs Outdated
Comment on lines +35 to +37
const PAYLOAD: &[u8] = &[
0x1c, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x55, 0x73, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x73,
];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
const PAYLOAD: &[u8] = &[
0x1c, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x55, 0x73, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x73,
];
const PAYLOAD: &[u8] = "\u{1c}OneOfUs\u{18}JoinUs".as_bytes();

0x1c, 0x4f, 0x6e, 0x65, 0x4f, 0x66, 0x55, 0x73, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x55, 0x73,
];

let client = WsClientBuilder::new()
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

use ethexe-sdk

@grishasobol
Copy link
Copy Markdown
Member Author

@claude opus update to latest master, resolve conflicts and fix review comments

@grishasobol grishasobol self-assigned this Apr 17, 2026
@claude
Copy link
Copy Markdown

claude Bot commented Apr 17, 2026

Claude finished @grishasobol's task in 5m 19s —— View job


Task progress

  • Read trigger comment and understand request
  • Fix gemini's incomplete log message ("Waiting for promise time({:?}) ...""Waiting for promise (elapsed: {:?}) ...")
  • Fix PAYLOAD to use string literal (StackOverflowExcept1on)
  • ⚠️ Could not rebase/merge latest master — git fetch/git merge blocked in this session
  • ⚠️ Could not adopt "use ethexe-sdk" — requires structural change (see note)
  • Commit and push

Summary

Pushed commit 64d4228 with two review-comment fixes to ethexe/service/tests/injected_tx.rs:

  • PAYLOAD rewritten as "\u{1c}OneOfUs\u{18}JoinUs".as_bytes() (same 15 bytes as before, per StackOverflowExcept1on's suggestion).
  • Reworded the log line to "Waiting for promise (elapsed: {:?}) ..." so the elapsed time is attached clearly (addresses gemini-code-assist).

Not done — needs your input

1. Update to latest master. Only one commit is on master ahead of this branch: 4974be2 feat(utils/wasm-builder): add check to ensure that code is too large (#5351). My session's permissions only allow git push via a wrapper — git fetch, git merge, git rebase, and git cherry-pick all require approval that isn't available here. Since the shallow clone only contains 4974be2 with no parent info, I cannot produce a correct merge/rebase locally either. Please approve a rebase/merge yourself, or re-run me with git fetch/git merge allowed.

2. "use ethexe-sdk" on line 49. The only WsClient construction path in ethexe-sdk is VaraEthApi::new(vara_eth_rpc_url, ethereum_client) (ethexe/sdk/src/api.rs:31), which additionally requires a fully configured Ethereum client. This mainnet-validator test intentionally doesn't need an Ethereum RPC connection, so adopting the SDK here needs one of:

  • Expose a WS-only VaraEthApi constructor in ethexe-sdk, or
  • Pass an Ethereum mainnet RPC URL to the test and build a full VaraEthApi.

Could you confirm which direction you want? Happy to do either in a follow-up.
· branch gsobol/ethexe/mainnet-test

- Use string literal for SCALE-encoded PAYLOAD (suggested by
  StackOverflowExcept1on).
- Fix incomplete log message wording (suggested by gemini-code-assist).

Co-authored-by: Gregory Sobol <[email protected]>
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