utils

package module
v1.0.8 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2022 License: MIT Imports: 7 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecodeAndReverseHexString added in v1.0.8

func DecodeAndReverseHexString(hexStr string) ([]byte, error)

DecideAndReverseHexString decodes the given hex string and then reverses the bytes. This is useful for converting Bitcoin hex strings to byte slices in little endian format.

func DisableCanonicalMode added in v1.0.5

func DisableCanonicalMode(optionalLogger ...Logger) *ttyState

DisableCanonicalMode disables canonical mode on the terminal. This allows for reading single characters without pressing enter. The previous state is returned and can be used to restore the previous state. The optionalLogger can be used a preferred logger. If no optionalLogger is provided, a default logger is used.

Usage in main.go: defer utils.RestoreTTY(utils.DisableCanonicalMode())

func GetBitcoinHash added in v1.0.7

func GetBitcoinHash(b []byte) []byte

GetBitcoinHash calculates the Bitcoin hash of the given bytes. The Bitcoin hash is the double SHA-256 hash of the given bytes which is then reversed. For transactions the entire transaction bytes are hashed; for blocks only the header (80 bytes) is hashed.

func RestoreTTY added in v1.0.5

func RestoreTTY(state *ttyState)

RestoreTTY restores the previous state of the terminal. The previous state is returned by DisableCanonicalMode. If the ttyState is nil, nothing is done.

func ReverseSlice added in v1.0.6

func ReverseSlice[T any](a []T) []T

ReverseSlice reverses the order of the items in the slice. The slice is modified in place. The slice is returned for convenience. The slice can be of any type. The slice can be nil. The slice can be empty. The slice can contain any number of items.

func SafeSend

func SafeSend[T any](ch chan T, t T) bool

SafeSend is a helper function that sends a value on a channel and returns. It is safe to use with closed channels. It uses go generics to allow for any type of channel.

func Sha256d

func Sha256d(b []byte) []byte

Sha256d calculates hash(hash(b)) and returns the resulting bytes.

Types

type Logger added in v1.0.5

type Logger interface {
	Infof(format string, args ...interface{})
	Warnf(format string, args ...interface{})
	Errorf(format string, args ...interface{})
	Fatalf(format string, args ...interface{})
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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