starknet_api: add fee_proposal to BlockHeaderWithoutHash#13811
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
e05a52d to
deb3f58
Compare
32c22cb to
37d4412
Compare
1419739 to
f346ddf
Compare
459b11b to
18edaf1
Compare
sirandreww-starkware
left a comment
There was a problem hiding this comment.
@sirandreww-starkware made 1 comment.
Reviewable status: 0 of 6 files reviewed, 1 unresolved discussion (waiting on ShahakShama).
| timestamp: block_header.timestamp, | ||
| l1_da_mode: block_header.l1_da_mode, | ||
| starknet_version, | ||
| fee_proposal: GasPrice::default(), |
18edaf1 to
fba7ec9
Compare
f346ddf to
946497d
Compare
fba7ec9 to
3ed5828
Compare
946497d to
2b22515
Compare
| pub l1_da_mode: L1DataAvailabilityMode, | ||
| pub starknet_version: StarknetVersion, | ||
| /// SNIP-35: proposer's oracle-derived recommended fee. | ||
| pub fee_proposal: GasPrice, |
There was a problem hiding this comment.
Missing serde default breaks deserialization of older data
Medium Severity
The new fee_proposal field on BlockHeaderWithoutHash lacks a #[serde(default)] attribute. This struct is embedded in SyncBlock, which is serialized/deserialized in StateSyncRequest and StateSyncResponse for inter-process communication. During rolling deployments, an older component producing a serialized SyncBlock without fee_proposal will cause deserialization failures on newer components, since serde requires the field to be present unless a default is specified.
Reviewed by Cursor Bugbot for commit 2b22515. Configure here.
2b22515 to
645e3f3
Compare
3ed5828 to
1fa271d
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
There are 3 total unresolved issues (including 2 from previous reviews).
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 645e3f3. Configure here.
| timestamp, | ||
| l1_da_mode, | ||
| starknet_version, | ||
| fee_proposal: GasPrice::default(), |
There was a problem hiding this comment.
fee_proposal not serialized in protobuf conversion
Medium Severity
The fee_proposal field is not included in the From<(BlockHeader, Vec<BlockSignature>)> for protobuf::SignedBlockHeader serialization (around line 246–292), and on deserialization it is hardcoded to GasPrice::default(). This means any non-default fee_proposal will be silently lost during P2P block header exchange, causing peers to always see a zero value.
Reviewed by Cursor Bugbot for commit 645e3f3. Configure here.
1fa271d to
bd0d2c5
Compare
645e3f3 to
ae16ec9
Compare
bd0d2c5 to
e8a6182
Compare
e980905 to
963c3a6
Compare
963c3a6 to
3b4a2a3
Compare
|
Artifacts upload workflows: |
c349cad to
ba14202
Compare
3b4a2a3 to
c83c0d6
Compare



No description provided.