Make deposit root the root of an SSZ vector
This commit is contained in:
parent
b21c9cc71b
commit
ad943bbd06
|
@ -43,7 +43,8 @@ def to_little_endian_64(value: uint256) -> bytes[8]:
|
||||||
@public
|
@public
|
||||||
@constant
|
@constant
|
||||||
def get_deposit_root() -> bytes32:
|
def get_deposit_root() -> bytes32:
|
||||||
node: bytes32 = 0x0000000000000000000000000000000000000000000000000000000000000000
|
zero_bytes32: bytes32 = 0x0000000000000000000000000000000000000000000000000000000000000000
|
||||||
|
node: bytes32 = zero_bytes32
|
||||||
size: uint256 = self.deposit_count
|
size: uint256 = self.deposit_count
|
||||||
for height in range(DEPOSIT_CONTRACT_TREE_DEPTH):
|
for height in range(DEPOSIT_CONTRACT_TREE_DEPTH):
|
||||||
if bitwise_and(size, 1) == 1: # More gas efficient than `size % 2 == 1`
|
if bitwise_and(size, 1) == 1: # More gas efficient than `size % 2 == 1`
|
||||||
|
@ -51,7 +52,7 @@ def get_deposit_root() -> bytes32:
|
||||||
else:
|
else:
|
||||||
node = sha256(concat(node, self.zero_hashes[height]))
|
node = sha256(concat(node, self.zero_hashes[height]))
|
||||||
size /= 2
|
size /= 2
|
||||||
return node
|
return sha256(concat(node, slice(zero_bytes32, start=0, len=24), self.to_little_endian_64(deposit_amount))
|
||||||
|
|
||||||
|
|
||||||
@public
|
@public
|
||||||
|
|
Loading…
Reference in New Issue