// ConvertKey returns a B58 encoded Datastore key // TODO: this is hacky because it encodes every path component. some // path components may be proper strings already... func (b58KeyConverter) ConvertKey(dsk ds.Key) ds.Key { k := ds.NewKey("/") for _, n := range dsk.Namespaces() { k = k.ChildString(b58.Encode([]byte(n))) } return k }
func Encode(encoding string, hash mh.Multihash) (string, error) { switch encoding { case "raw": return string(hash), nil case "hex": return hex.EncodeToString(hash), nil case "base58": return base58.Encode(hash), nil case "base64": return base64.StdEncoding.EncodeToString(hash), nil default: return "", fmt.Errorf("unknown encoding: %s", encoding) } }
// IDB58Encode returns b58-encoded string func IDB58Encode(id ID) string { return b58.Encode([]byte(id)) }
func (m Multihash) B58String() string { return b58.Encode([]byte(m)) }
// MarshalJSON returns a JSON-encoded Key (string) func (k *Key) MarshalJSON() ([]byte, error) { return json.Marshal(b58.Encode([]byte(*k))) }
// B58KeyEncode returns Key in a b58 encoded string func B58KeyEncode(k Key) string { return b58.Encode([]byte(k)) }