docs: def replay_block(self, block_to_replay, limit=5):
          """
          Replay all transactions in parent currency to passed in "source" currency.
          Block_to_replay can either be an integer or a block object.
          """
  
          if block_to_replay == 'latest':
              if self.verbose:
                  print("Getting latest %s block header" % source.upper())
              block = get_block(self.source, latest=True, verbose=self.verbose)
              if self.verbose:
                  print("Latest %s block is #%s" % (self.source.upper(), block['block_number']))
          else:
              blocknum = block_to_replay if type(block_to_replay) == int else block_to_replay['block_number']
              if blocknum < self.parent_fork_block or blocknum < self.child_fork_block:
                  raise Exception("Can't replay blocks mined before the fork")
  
          if type(block_to_replay) is not dict:
              if self.verbose:
                  print("Getting %s block header #%s" % (self.source.upper(), block_to_replay))
              block = get_block(self.source, block_number=int(block_to_replay), verbose=self.verbose)
          else:
              block = block_to_replay
  
          if self.verbose:
              print("Using %s for pushing to %s" % (self.pusher.name, self.destination.upper()))
              print("Using %s for getting %s transactions" % (self.tx_fetcher.name, self.source.upper()))
              print("Finished getting block header,", len(block['txids']), "transactions in block, will replay", (limit or "all of them"))
  
          results = []
          enforced_limit = (limit or len(block['txids']))
  
          for i, txid in enumerate(block['txids'][:enforced_limit]):
              print("outside", txid)
              self._replay_tx(txid, i)