7
7
8
8
b58 "github.com/mr-tron/base58/base58"
9
9
b32 "github.com/multiformats/go-base32"
10
+ b36 "github.com/multiformats/go-base36"
10
11
)
11
12
12
13
// Encoding identifies the type of base-encoding that a multibase is carrying.
@@ -29,8 +30,10 @@ const (
29
30
Base32hexUpper = 'V'
30
31
Base32hexPad = 't'
31
32
Base32hexPadUpper = 'T'
32
- Base58Flickr = 'Z'
33
+ Base36 = 'k'
34
+ Base36Upper = 'K'
33
35
Base58BTC = 'z'
36
+ Base58Flickr = 'Z'
34
37
Base64 = 'm'
35
38
Base64url = 'u'
36
39
Base64pad = 'M'
@@ -52,6 +55,8 @@ var EncodingToStr = map[Encoding]string{
52
55
'V' : "base32hexupper" ,
53
56
't' : "base32hexpad" ,
54
57
'T' : "base32hexpadupper" ,
58
+ 'k' : "base36" ,
59
+ 'K' : "base36upper" ,
55
60
'z' : "base58btc" ,
56
61
'Z' : "base58flickr" ,
57
62
'm' : "base64" ,
@@ -102,6 +107,10 @@ func Encode(base Encoding, data []byte) (string, error) {
102
107
return string (Base32hexPad ) + base32HexLowerPad .EncodeToString (data ), nil
103
108
case Base32hexPadUpper :
104
109
return string (Base32hexPadUpper ) + base32HexUpperPad .EncodeToString (data ), nil
110
+ case Base36 :
111
+ return string (Base36 ) + b36 .EncodeToStringLc (data ), nil
112
+ case Base36Upper :
113
+ return string (Base36Upper ) + b36 .EncodeToStringUc (data ), nil
105
114
case Base58BTC :
106
115
return string (Base58BTC ) + b58 .EncodeAlphabet (data , b58 .BTCAlphabet ), nil
107
116
case Base58Flickr :
@@ -149,6 +158,9 @@ func Decode(data string) (Encoding, []byte, error) {
149
158
case Base32hexPad , Base32hexPadUpper :
150
159
bytes , err := b32 .HexEncoding .DecodeString (data [1 :])
151
160
return enc , bytes , err
161
+ case Base36 , Base36Upper :
162
+ bytes , err := b36 .DecodeString (data [1 :])
163
+ return enc , bytes , err
152
164
case Base58BTC :
153
165
bytes , err := b58 .DecodeAlphabet (data [1 :], b58 .BTCAlphabet )
154
166
return Base58BTC , bytes , err
0 commit comments