accept base58 and hex addresses

This commit is contained in:
Martin Boehm 2018-01-24 15:10:07 +01:00
parent 4427af769b
commit 6af0a39e61

View File

@ -335,11 +335,24 @@ func unpackVaruint(buf []byte) (uint32, int) {
} }
func packAddress(address string) ([]byte, error) { func packAddress(address string) ([]byte, error) {
buf := base58.Decode(address) var buf []byte
if len(buf) <= 4 { if len(address) == 42 || len(address) == 50 {
return nil, ErrInvalidAddress var err error
buf, err = hex.DecodeString(address)
if err != nil {
return nil, err
}
} else {
buf = base58.Decode(address)
} }
return buf[:len(buf)-4], nil // Slice off the checksum if len(buf) == 25 {
return buf[:len(buf)-4], nil // Slice off the checksum
}
if len(buf) == 21 { // address without checksum
return buf, nil
}
return nil, ErrInvalidAddress
} }
func unpackAddress(buf []byte) (string, error) { func unpackAddress(buf []byte) (string, error) {