示例#1
0
 def _add_attestations_root_to_block_lookup(db: DatabaseAPI,
                                            block: BaseBeaconBlock) -> None:
     root = block.signing_root
     for index, attestation in enumerate(block.body.attestations):
         attestation_key = AttestationKey(root, index)
         db.set(
             SchemaV1.make_attestation_root_to_block_lookup_key(
                 attestation.hash_tree_root),
             ssz.encode(attestation_key),
         )
示例#2
0
 def _get_attestation_key_by_root(
         db: DatabaseAPI, attestation_root: Hash32) -> Tuple[Hash32, int]:
     try:
         encoded_key = db[
             SchemaV1.make_attestation_root_to_block_lookup_key(
                 attestation_root)]
     except KeyError:
         raise AttestationRootNotFound(
             "Attestation root {0} not found".format(
                 encode_hex(attestation_root)))
     attestation_key = ssz.decode(encoded_key, sedes=AttestationKey)
     return attestation_key.block_root, attestation_key.index
示例#3
0
 def attestation_exists(self, attestation_root: Hash32) -> bool:
     lookup_key = SchemaV1.make_attestation_root_to_block_lookup_key(
         attestation_root)
     return self.exists(lookup_key)