예제 #1
0
 def get_logs(self, block_number: BlockNumber) -> Tuple[DepositLog, ...]:
     block_hash = block_number.to_bytes(32, byteorder='big')
     if block_number == self.start_block_number:
         logs = (
             DepositLog(
                 block_hash=Hash32(block_hash),
                 pubkey=deposit.pubkey,
                 withdrawal_credentials=deposit.withdrawal_credentials,
                 signature=deposit.signature,
                 amount=deposit.amount,
             )
             for deposit in self.deposits
         )
         return tuple(logs)
     else:
         logs = (
             DepositLog(
                 block_hash=Hash32(block_hash),
                 pubkey=BLSPubkey(b'\x12' * 48),
                 withdrawal_credentials=Hash32(b'\x23' * 32),
                 signature=BLSSignature(b'\x34' * 96),
                 amount=Gwei(32 * GWEI_PER_ETH),
             )
             for _ in range(self.num_deposits_per_block)
         )
         return tuple(logs)
 def get_logs(self, block_number: BlockNumber) -> Tuple[DepositLog, ...]:
     block_hash = block_number.to_bytes(32, byteorder="big")
     logs: Tuple[DepositLog, ...] = tuple()
     if block_number < self.start_block_number:
         return logs
     elif block_number == self.start_block_number:
         logs = tuple(
             DepositLog(
                 block_hash=Hash32(block_hash),
                 pubkey=deposit.pubkey,
                 withdrawal_credentials=deposit.withdrawal_credentials,
                 signature=deposit.signature,
                 amount=deposit.amount,
             ) for deposit in self.deposits)
         return logs
     else:
         amount: Gwei = Gwei(32 * GWEI_PER_ETH)
         for seed in range(self.num_deposits_per_block):
             # Multiply `block_number` by 10 to shift it one digit to the left so
             # the input to the function is generated deterministically but does not
             # conflict with blocks in the future.
             pubkey, privkey = mk_key_pair_from_seed_index(block_number *
                                                           10 + seed)
             withdrawal_credentials = Hash32(b'\x12' * 32)
             deposit_data_message = DepositMessage.create(
                 pubkey=pubkey,
                 withdrawal_credentials=withdrawal_credentials,
                 amount=amount,
             )
             signature = sign_proof_of_possession(
                 deposit_message=deposit_data_message,
                 privkey=privkey,
             )
             logs = logs + (DepositLog(
                 block_hash=Hash32(block_hash),
                 pubkey=pubkey,
                 withdrawal_credentials=withdrawal_credentials,
                 signature=signature,
                 amount=amount,
             ), )
         return logs