code: func TrivialBase58EncodingAlphabet(a []byte, alphabet *Alphabet) string {
  	zero := alphabet.encode[0]
  	idx := len(a)*138/100 + 1
  	buf := make([]byte, idx)
  	bn := new(big.Int).SetBytes(a)
  	var mo *big.Int
  	for bn.Cmp(bn0) != 0 {
  		bn, mo = bn.DivMod(bn, bn58, new(big.Int))
  		idx--
  		buf[idx] = alphabet.encode[mo.Int64()]
  	}
  	for i := range a {
  		if a[i] != 0 {
  			break
  		}
  		idx--
  		buf[idx] = zero
  	}
  	return string(buf[idx:])
  }
docs: // TrivialBase58EncodingAlphabet encodes the passed bytes into a base58 encoded
  // string (inefficiently) with the passed alphabet.