Skip to content

combined adjustable + mergeable submissions - #482

Open
ckoopmann wants to merge 1 commit into
gattaca-com:developfrom
ultrasoundmoney:combined-adjustable-mergeable
Open

combined adjustable + mergeable submissions#482
ckoopmann wants to merge 1 commit into
gattaca-com:developfrom
ultrasoundmoney:combined-adjustable-mergeable

Conversation

@ckoopmann

Copy link
Copy Markdown
Contributor

Issue

A submission can carry bid adjustment data or block merging data, but not both. The two are signaled independently (WITH_ADJUSTMENTS flag, merge_type), but no body encoding carries both extensions, and the decoder drops one of the two when both are signaled: the dehydrated mergeable path ignores the with-adjustments flag, and the with-adjustments path errors on merge_type: mergeable.

A builder submitting mergeable blocks therefore loses bid adjustment on those bids entirely.

Solution

Add a combined body encoding — core fields ++ bid_adjustment_data ++ merging_data — selected by the existing signals (with-adjustments flag set and merge_type: mergeable), and have the decoder return both extensions. Existing single-extension wire formats are unchanged.

The body layout matches the combined submission format already accepted by the ultra sound relay, so builders can use a single encoder for both relays.

Details

  • new flat body types SignedBidSubmissionWithAdjustmentsAndMergingData and DehydratedBidSubmissionFuluWithAdjustmentsAndMergingData carrying both bid_adjustment_data and merging_data (core fields ++ bid_adjustment_data ++ merging_data)
  • decoder dispatches on (with_adjustments, merge_type) instead of treating them as exclusive: dehydrated and default paths decode the combined body when the with-adjustments flag is set and merge_type is mergeable, returning both merging and adjustment data
  • existing single-extension wire formats and AppendOnly / mark_all_txs_mergeable behavior unchanged
  • tests: SSZ round-trips for both new types, flat byte-layout assertion, decoder dispatch tests for both paths

@ckoopmann
ckoopmann marked this pull request as ready for review August 20, 2026 08:26
@ckoopmann
ckoopmann force-pushed the combined-adjustable-mergeable branch from cfa20ef to 0a72048 Compare August 21, 2026 09:27
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