Base58Check encoding: Difference between revisions

→‎{{header|Go}}: More idiomatic error handling.
m (→‎{{header|Go}}: Minor changes - results unaffected.)
(→‎{{header|Go}}: More idiomatic error handling.)
Line 159:
import (
"fmt"
"log"
"math/big"
"strings"
Line 176 ⟶ 177:
}
 
func convertToBase58(hash string, base int) (string, error) {
var x, ok = new(big.Int).SetString(hash, base)
if !ok {
panic(return "", fmt.SprintfErrorf("'%v' is not a valid integer in base '%d'", hash, base))
}
var sb strings.Builder
Line 188 ⟶ 189:
sb.WriteByte(alphabet[r])
}
return reverse(sb.String()), nil
}
 
func main() {
s := "25420294593250030202636073700053352635053786165627414518"
b, err := convertToBase58(s, 10)
if err != nil {
log.Fatal(err)
}
fmt.Println(s, "->", b)
hashes := [...]string{
Line 207 ⟶ 211:
}
for _, hash := range hashes {
b58, err := convertToBase58(hash, 0)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%-56s -> %s\n", hash, b58)
}
9,479

edits