docs: def b58encode(v):
      '''Encode a string using Base58'''
      if not isinstance(v, bytes):
          raise TypeError("a bytes-like object is required, not '%s'" %
                          type(v).__name__)
  
      origlen = len(v)
      v = v.lstrip(b'\0')
      newlen = len(v)
  
      p, acc = 1, 0
      for c in iseq(reversed(v)):
          acc += p * c
          p = p << 8
  
      result = b58encode_int(acc, default_one=False)
  
      return (alphabet[0] * (origlen - newlen) + result)