fix(core,txpool,ethapi): reject overflowing tx values#2289
fix(core,txpool,ethapi): reject overflowing tx values#2289gzliudan wants to merge 1 commit intoXinFinOrg:dev-upgradefrom
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
This PR hardens transaction handling by rejecting transaction value fields that exceed the uint256 maximum during txpool validation and EVM execution, and ensures the overflow is surfaced as an invalid-params style RPC validation error (where txValidationError is used).
Changes:
- Add
valueoverflow checks (BitLen() > 256) in txpool validation and EVM state transition. - Map
ErrUint256OverflowtoerrCodeInvalidParamsintxValidationError. - Add targeted unit tests covering overflow rejection paths in ethapi, txpool, and state processing.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| internal/ethapi/errors.go | Maps ErrUint256Overflow to an invalid-params tx validation RPC error. |
| internal/ethapi/api_test.go | Adds ethapi tests for overflow rejection and tx validation error mapping. |
| core/txpool/validation.go | Rejects transactions whose value exceeds uint256 during basic tx validation. |
| core/txpool/legacypool/legacypool_test.go | Adds a pool-level unit test asserting overflow values are rejected. |
| core/state_transition.go | Treats value conversion overflow as ErrUint256Overflow during execution. |
| core/state_processor_test.go | Adds an execution-level test ensuring ApplyTransactionWithEVM rejects overflow values. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Reject transaction values above uint256 max during txpool validation and execution. Map the overflow to an invalid params RPC error and add focused unit tests.
7dd662e to
d85e939
Compare
Proposed changes
Reject transaction values above uint256 max during txpool validation and execution.
Map the overflow to an invalid params RPC error and add focused unit tests.
fix #2287
Types of changes
What types of changes does your code introduce to XDC network?
Put an
✅in the boxes that applyImpacted Components
Which parts of the codebase does this PR touch?
Put an
✅in the boxes that applyChecklist
Put an
✅in the boxes once you have confirmed below actions (or provide reasons on not doing so) that