Add `bytes_to_int`

This commit is contained in:
Hsiao-Wei Wang 2019-02-08 05:12:58 +08:00
parent 859bf62484
commit 911e4f104b
No known key found for this signature in database
GPG Key ID: 95B070122902DEA4
1 changed files with 9 additions and 1 deletions

View File

@ -76,6 +76,7 @@
- [`get_attestation_participants`](#get_attestation_participants)
- [`is_power_of_two`](#is_power_of_two)
- [`int_to_bytes1`, `int_to_bytes2`, ...](#int_to_bytes1-int_to_bytes2-)
- [`bytes_to_int`](#bytes_to_int)
- [`get_effective_balance`](#get_effective_balance)
- [`get_total_balance`](#get_total_balance)
- [`get_fork_version`](#get_fork_version)
@ -707,7 +708,7 @@ def get_permuted_index(index: int, list_size: int, seed: Bytes32, round_count: i
See the 'generalized domain' algorithm on page 3.
"""
for round in range(round_count):
pivot = int.from_bytes(hash(seed + int_to_bytes1(round)), 'little') % list_size
pivot = bytes_to_int(hash(seed + int_to_bytes1(round))) % list_size
flip = (pivot - index) % list_size
position = max(index, flip)
source = hash(seed + int_to_bytes1(round) + int_to_bytes4(position // 256))
@ -1007,6 +1008,13 @@ def is_power_of_two(value: int) -> bool:
`int_to_bytes1(x): return x.to_bytes(1, 'big')`, `int_to_bytes2(x): return x.to_bytes(2, 'big')`, and so on for all integers, particularly 1, 2, 3, 4, 8, 32, 48, 96.
### `bytes_to_int`
```python
def bytes_to_int(data: bytes) -> int:
return int.from_bytes(data, 'little')
```
### `get_effective_balance`
```python