base58

package
v0.0.0-...-8b70bb9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2018 License: GPL-3.0, Apache-2.0 Imports: 5 Imported by: 0

README

go-base58

I copied this package from https://github.com/jbenet/go-base58 which in turn came from https://github.com/conformal/btcutil to provide a simple base58 package that

  • defaults to base58-check (btc)
  • and allows using different alphabets.
  • and returns an error on decoding problems to be compatible with the encoding/* packages in stdlib

Usage

package main

import (
  "fmt"
  b58 "github.com/blockservice/echoin/sdk/go-wire/data/base58"
)

func main() {
  buf := []byte{255, 254, 253, 252}
  fmt.Printf("buffer: %v\n", buf)

  str := b58.Encode(buf)
  fmt.Printf("encoded: %s\n", str)

  buf2, err := b58.Decode(str)
  if err != nil {
    panic(err)
  }
  fmt.Printf("decoded: %v\n", buf2)
}
Another alphabet
package main

import (
  "fmt"
  b58 "github.com/blockservice/echoin/sdk/go-wire/data/base58"
)

const BogusAlphabet = "ZYXWVUTSRQPNMLKJHGFEDCBAzyxwvutsrqponmkjihgfedcba987654321"


func encdec(alphabet string) {
  fmt.Printf("using: %s\n", alphabet)

  buf := []byte{255, 254, 253, 252}
  fmt.Printf("buffer: %v\n", buf)

  str := b58.EncodeAlphabet(buf, alphabet)
  fmt.Printf("encoded: %s\n", str)

  buf2, err := b58.DecodeAlphabet(str, alphabet)
  if err != nil {
    panic(err)
  }
  fmt.Printf("decoded: %v\n\n", buf2)
}


func main() {
  encdec(b58.BTCAlphabet)
  encdec(b58.FlickrAlphabet)
  encdec(BogusAlphabet)
}

License

Package base58 (and the original btcutil) are licensed under the ISC License.

Documentation

Overview

Package base58 provides base58-check encoding. The alphabet is modifyiable for

Base58 Usage

To decode a base58 string:

rawData := base58.Base58Decode(encodedData)

Similarly, to encode the same data:

encodedData := base58.Base58Encode(rawData)

Index

Constants

View Source
const BTCAlphabet = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

alphabet is the modified base58 alphabet used by Bitcoin.

View Source
const FlickrAlphabet = "123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"

Variables

View Source
var (
	BTCEncoder    data.ByteEncoder = base58Encoder{BTCAlphabet}
	FlickrEncoder                  = base58Encoder{FlickrAlphabet}
)

Functions

func Decode

func Decode(b string) ([]byte, error)

Decode decodes a modified base58 string to a byte slice, using BTCAlphabet

func DecodeAlphabet

func DecodeAlphabet(b, alphabet string) ([]byte, error)

DecodeAlphabet decodes a modified base58 string to a byte slice, using alphabet.

func Encode

func Encode(b []byte) string

Encode encodes a byte slice to a modified base58 string, using BTCAlphabet

func EncodeAlphabet

func EncodeAlphabet(b []byte, alphabet string) string

Encode encodes a byte slice to a modified base58 string, using alphabet

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL