11package std
22
3- import "crypto/bech32"
3+ import (
4+ "crypto/bech32"
5+ "errors"
6+ )
47
58type Address string // NOTE: bech32
69
@@ -19,15 +22,15 @@ const RawAddressSize = 20
1922type RawAddress [RawAddressSize]byte
2023
2124func EncodeBech32(prefix string, bz [20]byte) Address {
22- b32, err := convertAndEncode(prefix, bytes [:])
25+ b32, err := convertAndEncode(prefix, bz [:])
2326 if err != nil {
2427 panic(err) // should not happen
2528 }
26- return b32
29+ return Address( b32)
2730}
2831
29- func DecodeBech32(addr Address) (prefix string, bz [20]byte, ok bool) {
30- prefix, bz, err := bech32.Decode(addr)
32+ func DecodeBech32(addr Address) (string, [20]byte, bool) {
33+ prefix, bz, err := bech32.Decode(string( addr) )
3134 if err != nil || len(bz) != 20 {
3235 return "", [20]byte{}, false
3336 }
@@ -37,7 +40,7 @@ func DecodeBech32(addr Address) (prefix string, bz [20]byte, ok bool) {
3740func convertAndEncode(hrp string, data []byte) (string, error) {
3841 converted, err := bech32.ConvertBits(data, 8, 5, true)
3942 if err != nil {
40- return "", errors.Wrap(err, "encoding bech32 failed" )
43+ return "", errors.New( "encoding bech32 failed: "+err.Error() )
4144 }
4245 return bech32.Encode(hrp, converted)
4346}
0 commit comments