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