fix: correct _majorVersion() to extract full major version component
#1668
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.
Summary
Fixes a bug in
SemVerMixin._majorVersion()that was returning only the first byte of the version string (e.g.,'v'from"v1.2.3") instead of the complete major version component (e.g.,"1"). This caused the EIP-712 domain separator to remain unchanged across major version upgrades, violating signature isolation between incompatible releases.Problem
The previous implementation of
_majorVersion()returned only the first character:This meant:
"v1.2.3"and"v2.0.0"would both contribute the same value ('v') to the domain separatorSolution
Updated
_majorVersion()to:'v'/'V'prefix'.'This ensures the domain separator changes correctly when the major version is incremented, properly isolating signatures across incompatible releases.