Merge pull request #3608 from ethereum/mkalinin-patch-6

Introduce UINT64_MAX_SQRT
This commit is contained in:
Hsiao-Wei Wang 2024-02-19 15:47:39 +08:00 committed by GitHub
commit 1a33bf8a00
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -179,6 +179,7 @@ The following values are (non-configurable) constants used throughout the specif
| Name | Value |
| - | - |
| `UINT64_MAX` | `uint64(2**64 - 1)` |
| `UINT64_MAX_SQRT` | `uint64(4294967295)` |
| `GENESIS_SLOT` | `Slot(0)` |
| `GENESIS_EPOCH` | `Epoch(0)` |
| `FAR_FUTURE_EPOCH` | `Epoch(2**64 - 1)` |
@ -601,7 +602,7 @@ def integer_squareroot(n: uint64) -> uint64:
Return the largest integer ``x`` such that ``x**2 <= n``.
"""
if n == UINT64_MAX:
return uint64(4294967295)
return UINT64_MAX_SQRT
x = n
y = (x + 1) // 2
while y < x: