base58

package module
v0.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2023 License: MIT Imports: 2 Imported by: 188

README

base58-go

CI Status Go Report Card MIT License release pkg.go.dev

Base58 encoding/decoding package in Go

This is a Go language package for encoding and decoding base58 strings. This package supports multiple encodings, flickr, ripple and bitcoin.

Package Usage

package main

import (
	"fmt"
	"os"

	"github.com/itchyny/base58-go"
)

func main() {
	encoding := base58.FlickrEncoding // or RippleEncoding or BitcoinEncoding

	encoded, err := encoding.Encode([]byte("100"))
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	}
	fmt.Println(string(encoded))

	decoded, err := encoding.Decode(encoded)
	if err != nil {
		fmt.Println(err.Error())
		os.Exit(1)
	}
	fmt.Println(string(decoded))
}

base58 command

Homebrew
brew install itchyny/tap/base58
Build from source
go install github.com/itchyny/base58-go/cmd/base58@latest
Basic usage
 $ base58
100
2J
100000000
9QwvW
79228162514264337593543950336
5QchsBFApWPVxyp9C
^D
 $ base58 --decode
2J
100
9QwvW
100000000
5QchsBFApWPVxyp9C
79228162514264337593543950336
^D
 $ echo 100000000 | base58
9QwvW
 $ echo 9QwvW | base58 --decode
100000000
 $ echo 100000000 | base58 --encoding=bitcoin
9qXWw

Bug Tracker

Report bug at Issues・itchyny/base58-go - GitHub.

Author

itchyny (https://github.com/itchyny)

License

This software is released under the MIT License, see LICENSE.

Documentation

Overview

Package base58 provides the APIs for encoding and decoding base58 strings.

Index

Constants

This section is empty.

Variables

View Source
var BitcoinEncoding = New([]byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"))

BitcoinEncoding is the encoding scheme used for Bitcoin addresses.

View Source
var FlickrEncoding = New([]byte("123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"))

FlickrEncoding is the encoding scheme used for Flickr's short URLs.

View Source
var RippleEncoding = New([]byte("rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz"))

RippleEncoding is the encoding scheme used for Ripple addresses.

Functions

This section is empty.

Types

type Encoding

type Encoding struct {
	// contains filtered or unexported fields
}

An Encoding is a radix 58 encoding/decoding scheme.

func New

func New(alphabet []byte) *Encoding

New creates a new base58 encoding.

func (*Encoding) Decode

func (enc *Encoding) Decode(src []byte) ([]byte, error)

Decode decodes the base58 encoded bytes.

func (*Encoding) DecodeUint64 added in v0.2.0

func (enc *Encoding) DecodeUint64(src []byte) (uint64, error)

DecodeUint64 decodes the base58 encoded bytes to an unsigned integer.

func (*Encoding) Encode

func (enc *Encoding) Encode(src []byte) ([]byte, error)

Encode encodes the number represented in the byte slice base 10.

func (*Encoding) EncodeUint64 added in v0.2.0

func (enc *Encoding) EncodeUint64(n uint64) []byte

EncodeUint64 encodes the unsigned integer.

func (*Encoding) UnmarshalFlag added in v0.0.2

func (enc *Encoding) UnmarshalFlag(value string) error

UnmarshalFlag implements flags.Unmarshaler

Directories

Path Synopsis
cmd
base58
base58 - Encode and decode using Base58 representation
base58 - Encode and decode using Base58 representation

Jump to

Keyboard shortcuts

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