Slice notation for justification_bitfield shift
This commit is contained in:
parent
7adf07ea5f
commit
237b41df5b
|
@ -1292,8 +1292,9 @@ def process_justification_and_finalization(state: BeaconState) -> None:
|
||||||
# Process justifications
|
# Process justifications
|
||||||
state.previous_justified_epoch = state.current_justified_epoch
|
state.previous_justified_epoch = state.current_justified_epoch
|
||||||
state.previous_justified_root = state.current_justified_root
|
state.previous_justified_root = state.current_justified_root
|
||||||
state.justification_bitfield = Bitvector[JUSTIFICATION_BITVECTOR_LENGTH](
|
state.justification_bitfield[1:JUSTIFICATION_BITVECTOR_LENGTH] = \
|
||||||
*([0b0] + state.justification_bitfield[0:JUSTIFICATION_BITVECTOR_LENGTH - 1]))
|
state.justification_bitfield[0:JUSTIFICATION_BITVECTOR_LENGTH - 1]
|
||||||
|
state.justification_bitfield[0] = 0b0
|
||||||
previous_epoch_matching_target_balance = get_attesting_balance(
|
previous_epoch_matching_target_balance = get_attesting_balance(
|
||||||
state, get_matching_target_attestations(state, previous_epoch)
|
state, get_matching_target_attestations(state, previous_epoch)
|
||||||
)
|
)
|
||||||
|
|
|
@ -324,12 +324,18 @@ class BaseList(list, Elements):
|
||||||
return super().__getitem__(k)
|
return super().__getitem__(k)
|
||||||
|
|
||||||
def __setitem__(self, k, v):
|
def __setitem__(self, k, v):
|
||||||
if k < 0:
|
if type(k) == slice:
|
||||||
raise IndexError(f"cannot set item in type {self.__class__} at negative index {k} (to {v})")
|
if k.start < 0 or k.stop > len(self):
|
||||||
if k > len(self):
|
raise IndexError(f"cannot set item in type {self.__class__}"
|
||||||
raise IndexError(f"cannot set item in type {self.__class__}"
|
f" at out of bounds slice {k} (to {v}, bound: {len(self)})")
|
||||||
f" at out of bounds index {k} (to {v}, bound: {len(self)})")
|
super().__setitem__(k, [coerce_type_maybe(x, self.__class__.elem_type) for x in v])
|
||||||
super().__setitem__(k, coerce_type_maybe(v, self.__class__.elem_type, strict=True))
|
else:
|
||||||
|
if k < 0:
|
||||||
|
raise IndexError(f"cannot set item in type {self.__class__} at negative index {k} (to {v})")
|
||||||
|
if k > len(self):
|
||||||
|
raise IndexError(f"cannot set item in type {self.__class__}"
|
||||||
|
f" at out of bounds index {k} (to {v}, bound: {len(self)})")
|
||||||
|
super().__setitem__(k, coerce_type_maybe(v, self.__class__.elem_type, strict=True))
|
||||||
|
|
||||||
def append(self, v):
|
def append(self, v):
|
||||||
super().append(coerce_type_maybe(v, self.__class__.elem_type, strict=True))
|
super().append(coerce_type_maybe(v, self.__class__.elem_type, strict=True))
|
||||||
|
|
Loading…
Reference in New Issue