Skip to content
This repository was archived by the owner on Mar 5, 2025. It is now read-only.

Commit aa471e7

Browse files
fix padRight validation failure on large uint (#7265)
* fix padRight validation failure on large uint * update CHANGELOG.md
1 parent 61babcc commit aa471e7

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

packages/web3-utils/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,3 +235,7 @@ Documentation:
235235
- `_sendPendingRequests` will catch unhandled errors from `_sendToSocket` (#6968)
236236

237237
## [Unreleased]
238+
239+
### Fixed
240+
241+
- fix `padRight` validation failure on large `uint` (#7265)

packages/web3-utils/src/string_manipulation.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ export const padRight = (value: Numbers, characterAmount: number, sign = '0'): s
7575
return value.padEnd(characterAmount, sign);
7676
}
7777

78-
validator.validate(['int'], [value]);
79-
8078
const hexString = typeof value === 'string' && isHexStrict(value) ? value : numberToHex(value);
81-
8279
const prefixLength = hexString.startsWith('-') ? 3 : 2;
80+
81+
validator.validate([hexString.startsWith('-') ? 'int' : 'uint'], [value]);
82+
8383
return hexString.padEnd(characterAmount + prefixLength, sign);
8484
};
8585

packages/web3-utils/test/fixtures/string_manipulation.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,14 @@ export const padRightData: [[Numbers, number, string], HexString][] = [
5656
[[BigInt(10000), 8, '0'], '0x27100000'],
5757
[[BigInt(-14), 8, '0'], '-0xe0000000'],
5858
[['15.5', 8, '0'], '15.50000'],
59+
[
60+
['0x05e2e7de3cd95eb48fa9ff77e7860cf249fe05f726abea45a0a44e62b4bf52b2', 64, '0'],
61+
'0x05e2e7de3cd95eb48fa9ff77e7860cf249fe05f726abea45a0a44e62b4bf52b2',
62+
],
63+
[
64+
['0xb5e2e7de3cd95eb48fa9ff77e7860cf249fe05f726abea45a0a44e62b4bf52b2', 64, '0'],
65+
'0xb5e2e7de3cd95eb48fa9ff77e7860cf249fe05f726abea45a0a44e62b4bf52b2',
66+
],
5967
];
6068

6169
export const toTwosComplementData: [[Numbers, number | undefined], HexString][] = [

0 commit comments

Comments
 (0)