feat: add ArbOS 50 multi-constraint gas pricing support#497
Merged
Conversation
16 tasks
Contributor
There was a problem hiding this comment.
Pull request overview
This PR implements ArbOS 50/51 multi-constraint gas pricing support, adding a new gas pricing model that allows multiple constraints to be configured simultaneously while maintaining backward compatibility with the single-constraint legacy model.
Key changes:
- Adds new precompile methods
setGasBacklogandsetGasPricingConstraintsfor managing gas pricing - Implements multi-constraint gas pricing algorithm that sums exponents from multiple constraints
- Updates ArbOS version from 50 to 51 in the system test chainspec
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| arbitrum-system-test.json | Updates initialArbOSVersion to 51 and adjusts mixHash |
| ArbOwnerParser.cs | Adds parser methods for new gas pricing precompile functions |
| ArbOwner.cs | Implements SetGasBacklog and SetGasPricingConstraints methods with validation |
| ArbitrumGenesisLoader.cs | Initializes NativeTokenOwnerSubspace storage during genesis |
| SubStorageVector.cs | Adds Pop() method for removing last sub-storage element |
| L2PricingState.cs | Implements routing between legacy and multi-constraint pricing models |
| L1PricingState.cs | Adds CurrentArbosVersion property |
| GasConstraint.cs | Adds Clear() method for constraint cleanup |
| ArbosVersion.cs | Adds FiftyOne constant and MultiConstraintPricing alias |
| ArbosState.cs | Propagates ArbOS version to pricing states and handles v51 upgrade |
| ArbOwnerParserTests.cs | Tests for new setGasPricingConstraints precompile |
| ArbosStateTestExtensions.cs | Updates CurrentArbosVersion setter to include pricing states |
| SubStorageVectorTests.cs | Comprehensive tests for SubStorageVector Pop() method |
| L2PricingStateTests.cs | Tests for multi-constraint pricing model behavior |
| Nethermind | Updates subproject commit reference |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2935a81 to
da04da8
Compare
45f515b to
ec14e0c
Compare
ec14e0c to
3686af2
Compare
wurdum
approved these changes
Dec 29, 2025
3686af2 to
03d6e82
Compare
svlachakis
requested changes
Dec 31, 2025
damian-orzechowski
approved these changes
Dec 31, 2025
svlachakis
approved these changes
Dec 31, 2025
hudem1
reviewed
Jan 1, 2026
hudem1
reviewed
Jan 1, 2026
…state visibility
# Conflicts: # src/Nethermind.Arbitrum/Arbos/ArbosState.cs
03d6e82 to
9ec67e8
Compare
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Depends on