Skip to content

Add 12 Arbitrum Nitro transaction fields for L1→L2 messaging#129

Open
JasoonS wants to merge 3 commits into
mainfrom
claude/gracious-maxwell-1t6hR
Open

Add 12 Arbitrum Nitro transaction fields for L1→L2 messaging#129
JasoonS wants to merge 3 commits into
mainfrom
claude/gracious-maxwell-1t6hR

Conversation

@JasoonS
Copy link
Copy Markdown
Collaborator

@JasoonS JasoonS commented May 25, 2026

Add support for Arbitrum Nitro-specific transaction fields used in L1-to-L2 messaging and retryable tickets: request_id, ticket_id, refund_to, max_refund, submission_fee_refund, l1_base_fee, deposit_value, retry_to, retry_value, retry_data, beneficiary, and max_submission_fee.

All fields are Option for backwards compatibility. Updated across the full stack: hypersync-format types, hypersync-schema Arrow definitions, Cap'n Proto schema and generated bindings, net-types TransactionField enum (with is_nullable/to_capnp/from_capnp), Arrow reader methods, from_arrow conversion, and simple_types client-facing struct.

Co-authored-by: claude noreply@anthropic.com

https://claude.ai/code/session_014p42VVh5CT3RUC4dzGKV3y

Summary by CodeRabbit

  • New Features
    • Transaction model, readers, and schema now include 12 optional Arbitrum Nitro–related fields: request ID, ticket ID, refund recipient, max refund, submission fee refund, L1 base fee, deposit value, retry destination, retry value, retry data, beneficiary, and max submission fee.
  • Chores
    • CI packaging step consolidated; crate versions updated across related packages.

Review Change Stack

Add support for Arbitrum Nitro-specific transaction fields used in L1-to-L2
messaging and retryable tickets: request_id, ticket_id, refund_to, max_refund,
submission_fee_refund, l1_base_fee, deposit_value, retry_to, retry_value,
retry_data, beneficiary, and max_submission_fee.

All fields are Option<T> for backwards compatibility. Updated across the full
stack: hypersync-format types, hypersync-schema Arrow definitions, Cap'n Proto
schema and generated bindings, net-types TransactionField enum (with
is_nullable/to_capnp/from_capnp), Arrow reader methods, from_arrow conversion,
and simple_types client-facing struct.

Co-authored-by: claude <noreply@anthropic.com>

https://claude.ai/code/session_014p42VVh5CT3RUC4dzGKV3y
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 25, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: de968dcd-2e6f-4f48-9813-9cdd3b1f99d8

📥 Commits

Reviewing files that changed from the base of the PR and between c479f7a and 72216ea.

📒 Files selected for processing (5)
  • .github/workflows/ci.yaml
  • hypersync-client/Cargo.toml
  • hypersync-format/Cargo.toml
  • hypersync-net-types/Cargo.toml
  • hypersync-schema/Cargo.toml
✅ Files skipped from review due to trivial changes (4)
  • hypersync-format/Cargo.toml
  • hypersync-schema/Cargo.toml
  • hypersync-net-types/Cargo.toml
  • hypersync-client/Cargo.toml

📝 Walkthrough

Walkthrough

Adds twelve optional Arbitrum Nitro transaction fields (request_id, ticket_id, refund_to, max_refund, submission_fee_refund, l1_base_fee, deposit_value, retry_to, retry_value, retry_data, beneficiary, max_submission_fee) across schema, capnp/net-types, format/client Transaction structs, Arrow reader getters, and Arrow-to-Transaction deserialization; also consolidates CI packaging and bumps crate versions.

Changes

Arbitrum Nitro Transaction Fields

Layer / File(s) Summary
Schema and type definitions
hypersync-net-types/hypersync_net_types.capnp, hypersync-net-types/src/transaction.rs, hypersync-schema/src/lib.rs
Cap'n Proto TransactionField adds variants requestId @46..`maxSubmissionFee `@57; Arrow schema adds corresponding nullable fields; Rust net-types enum gains matching variants, marks them nullable, and updates to_capnp() / from_capnp().
Transaction data model
hypersync-format/src/types/mod.rs, hypersync-client/src/simple_types.rs
Transaction struct in format and client layers gains twelve new optional fields (request_id, ticket_id, refund_to, max_refund, submission_fee_refund, l1_base_fee, deposit_value, retry_to, retry_value, retry_data, beneficiary, max_submission_fee); test helper updated.
Arrow reader interface
hypersync-client/src/arrow_reader.rs
TransactionReader exposes twelve new public getter methods returning Result<Option<T>, ReadError> using get_nullable; unit test and ignored integration test extended to call new getters.
Arrow-to-Transaction deserialization
hypersync-client/src/from_arrow.rs
TryFrom<TransactionReader> for Transaction extracts the new optional nested/nullable fields via to_nested_opt(...) and assigns them into the constructed Transaction.
CI packaging & crate versions
.github/workflows/ci.yaml, hypersync-client/Cargo.toml, hypersync-format/Cargo.toml, hypersync-net-types/Cargo.toml, hypersync-schema/Cargo.toml
CI package step consolidated into a single cargo package invocation; crate/package versions bumped for workspace crates and matching dependency version constraints updated.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • JonoPrest
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately and clearly describes the main change: adding 12 Arbitrum Nitro transaction fields for L1→L2 messaging, which aligns with the comprehensive changes across multiple files and modules.
Docstring Coverage ✅ Passed Docstring coverage is 85.71% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Comment @coderabbitai help to get the list of available commands and usage tips.

JasoonS and others added 2 commits May 25, 2026 14:15
- hypersync-format: 0.7.0 → 0.8.0-arbitrum-test.0
- hypersync-schema: 0.4.0 → 0.5.0-arbitrum-test.0
- hypersync-net-types: 0.12.3 → 0.13.0-arbitrum-test.0
- hypersync-client: 1.1.4 → 1.2.0-arbitrum-test.0

Co-authored-by: claude <noreply@anthropic.com>

https://claude.ai/code/session_014p42VVh5CT3RUC4dzGKV3y
Package all crates in a single cargo package command so Cargo resolves
inter-workspace dependencies locally instead of looking them up on
crates.io (where prerelease versions don't exist yet).

Co-authored-by: claude <noreply@anthropic.com>
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.

1 participant