Bluebird#19
Conversation
Add second deposit tx type that doesn't include the mint field in the tx hash
Ability to override bluebird time
|
bugbot run |
Adjust gas parameters for Bluebird
There was a problem hiding this comment.
Pull Request Overview
This PR introduces the "Bluebird" fork, which implements changes to EIP-1559 gas parameters and adds a new deposit transaction type (DepositTxV2). The fork modifies the elasticity multiplier, base fee change denominator, and introduces a minimum base fee to improve gas fee stability.
- Adds Bluebird fork configuration with timestamp-based activation
- Introduces DepositTxV2 transaction type that excludes Mint from hash calculation
- Updates EIP-1559 parameters for more stable gas pricing
Reviewed Changes
Copilot reviewed 25 out of 25 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| params/config.go | Adds Bluebird fork configuration and updated EIP-1559 parameter methods |
| core/types/deposit_tx_v2.go | Implements new DepositTxV2 transaction type |
| core/types/transaction.go | Updates transaction handling to support DepositTxV2 |
| consensus/misc/eip1559/eip1559.go | Implements Bluebird minimum base fee enforcement |
| core/types/rollup_cost.go | Adds Bluebird-specific L1 gas parameter extraction |
| eth/ethconfig/config.go | Adds configuration override for Bluebird fork |
| cmd/utils/flags.go | Adds command-line flag for Bluebird override |
| // extractL1GasParamsPostBluebird extracts the gas parameters necessary to compute gas from L1 attribute | ||
| // info calldata after the Bluebird upgrade. The calldata is 292 bytes long (4 byte selector + 288 bytes of data). | ||
| func extractL1GasParamsPostBluebird(data []byte) (gasParams, error) { | ||
| if len(data) != 292 { |
There was a problem hiding this comment.
The error message states "expected 260 L1 info bytes" but the code checks for 292 bytes. The comment above indicates 288 bytes of data after a 4-byte selector (292 total), but the error message doesn't match.
| // Test with wrong data length | ||
| _, err = extractL1GasParamsPostBluebird(data[:196]) // Use Ecotone length | ||
| require.Error(t, err) | ||
| require.Contains(t, err.Error(), "expected 260 L1 info bytes in Bluebird") |
There was a problem hiding this comment.
The test expects an error message mentioning "260 L1 info bytes" but the actual error message in the code says "292 L1 info bytes". This test will fail because the error messages don't match.
| // info calldata after the Bluebird upgrade. The calldata is 292 bytes long (4 byte selector + 288 bytes of data). | ||
| func extractL1GasParamsPostBluebird(data []byte) (gasParams, error) { | ||
| if len(data) != 292 { | ||
| return gasParams{}, fmt.Errorf("expected 292 L1 info bytes in Bluebird, got %d", len(data)) | ||
| } | ||
| // data layout for Bluebird (288 bytes of data after 4-byte selector): |
There was a problem hiding this comment.
The error message should match the comment above which mentions "260 bytes of data" or the comment should be updated to reflect 288 bytes of data. There's an inconsistency between the comment (260 bytes) and the actual check (292 bytes including 4-byte selector).
| // info calldata after the Bluebird upgrade. The calldata is 292 bytes long (4 byte selector + 288 bytes of data). | |
| func extractL1GasParamsPostBluebird(data []byte) (gasParams, error) { | |
| if len(data) != 292 { | |
| return gasParams{}, fmt.Errorf("expected 292 L1 info bytes in Bluebird, got %d", len(data)) | |
| } | |
| // data layout for Bluebird (288 bytes of data after 4-byte selector): | |
| // info calldata after the Bluebird upgrade. The calldata is 292 bytes long (4-byte selector + 288 bytes of data). | |
| func extractL1GasParamsPostBluebird(data []byte) (gasParams, error) { | |
| if len(data) != 292 { | |
| return gasParams{}, fmt.Errorf("expected 292 L1 info bytes in Bluebird, got %d", len(data)) | |
| } | |
| // data layout for Bluebird (292 bytes total: 4-byte selector + 288 bytes of data): |
|
bugbot run |
No description provided.