perf(core/txpool): use the cached address in ValidateTransactionWithState #30208#2166
perf(core/txpool): use the cached address in ValidateTransactionWithState #30208#2166gzliudan wants to merge 1 commit intoXinFinOrg:dev-upgradefrom
Conversation
…tate ethereum#30208 The address recover is executed and cached in ValidateTransaction already. It's expected that the cached one is returned in ValidateTransaction. However, currently, we use the wrong function signer.Sender instead of types.Sender which will do all the address recover again.
|
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 is a small performance optimization that replaces signer.Sender(tx) with types.Sender(signer, tx) in ValidateTransactionWithState. The direct signer.Sender() call always performs the expensive ecrecover signature recovery, while types.Sender() first checks a per-transaction cache that was already populated by the preceding ValidateTransaction call, avoiding redundant computation.
Changes:
- Replace
signer.Sender(tx)withtypes.Sender(signer, tx)inValidateTransactionWithStateto leverage the cached sender address from prior validation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Proposed changes
The address recover is executed and cached in ValidateTransaction already. It's expected that the cached one is returned in ValidateTransaction. However, currently, we use the wrong function signer.Sender instead of types.Sender which will do all the address recover again.
Ref: ethereum#30208
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