Skip to content

Keep leading zero bytes when encoding hex strings - #34

Merged
sc0Vu merged 1 commit into
web3p:masterfrom
sc0Vuai:fix/hex-keep-leading-zeros
Sep 23, 2026
Merged

sc0Vu merged 1 commit into
web3p:masterfrom
sc0Vuai:fix/hex-keep-leading-zeros

Conversation

@sc0Vuai

@sc0Vuai sc0Vuai commented Sep 23, 2026

Copy link
Copy Markdown
Contributor

Str::encode(..., 'hex') stripped leading zeros from hex input longer than one byte (added in #26 for ethereum-tx quantities). Hex strings are byte strings, so this corrupted fixed-width values such as addresses and hashes: 0x0000...0001 (20 bytes) encoded as 01, which geth rejects (#27).

Encode hex strings byte-for-byte, as ethers.js does. Odd-length input is still padded to a whole byte.

BREAKING CHANGE: integer quantities passed as hex with leading zeros (e.g. "0x00cb9d") are no longer trimmed; callers must strip leading zeros from quantities themselves.

Str::encode(..., 'hex') stripped leading zeros from hex input longer
than one byte (added in web3p#26 for ethereum-tx quantities). Hex strings
are byte strings, so this corrupted fixed-width values such as
addresses and hashes: 0x0000...0001 (20 bytes) encoded as 01, which
geth rejects (web3p#27).

Encode hex strings byte-for-byte, as ethers.js does. Odd-length input
is still padded to a whole byte.

BREAKING CHANGE: integer quantities passed as hex with leading zeros
(e.g. "0x00cb9d") are no longer trimmed; callers must strip leading
zeros from quantities themselves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.37%. Comparing base (1478705) to head (26a5b2d).

Additional details and impacted files
@@             Coverage Diff              @@
##             master      #34      +/-   ##
============================================
- Coverage     94.44%   94.37%   -0.07%     
+ Complexity       61       60       -1     
============================================
  Files             3        3              
  Lines           162      160       -2     
============================================
- Hits            153      151       -2     
  Misses            9        9              

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sc0Vu
sc0Vu merged commit 067aa06 into web3p:master Sep 23, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants