common

package
v0.0.0-...-f672fcd Latest Latest
Warning

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

Go to latest
Published: Jan 28, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// MaxSafeJSInt represents max value which JS support
	// It is used for smartContract fields
	// Our staking repo is written in JS, as are many other clients
	// If we use higher value JS will not be able to parse it
	MaxSafeJSInt = uint64(math.Pow(2, 53) - 2)
)

Functions

func BigIntDivCeil

func BigIntDivCeil(a, b *big.Int) *big.Int

BigIntDivCeil performs integer division and rounds given result to next bigger integer number It is calculated using this formula result = (a + b - 1) / b

func BigMin

func BigMin(x, y *big.Int) *big.Int

BigMin returns the smallest of x or y.

func ConvertUnmarshalledUint

func ConvertUnmarshalledUint(x interface{}) (uint64, error)

func CreateDirSafe

func CreateDirSafe(path string, perms fs.FileMode) error

Creates a directory at path and with perms level permissions. If directory already exists, owner and permissions are verified.

func DirectoryExists

func DirectoryExists(directoryPath string) bool

DirectoryExists checks if the directory at the specified path exists

func EncodeBytesToUint64

func EncodeBytesToUint64(b []byte) uint64

EncodeBytesToUint64 big endian byte slice to uint64

func EncodeUint64ToBytes

func EncodeUint64ToBytes(value uint64) []byte

EncodeUint64ToBytes encodes provided uint64 to big endian byte slice

func ExtendByteSlice

func ExtendByteSlice(b []byte, needLength int) []byte

ExtendByteSlice extends given byte slice by needLength parameter and trims it

func FileExists

func FileExists(filePath string) bool

Checks if the file at the specified path exists

func GetTerminationSignalCh

func GetTerminationSignalCh() <-chan os.Signal

GetTerminationSignalCh returns a channel to emit signals by ctrl + c

func IsContextDone

func IsContextDone(err error) bool

IsContextDone returns true if the error is due to the context being cancelled or expired. This is useful for determining if a function should retry.

func Max

func Max(a, b uint64) uint64

Max returns the strictly bigger number

func Min

func Min(a, b uint64) uint64

Min returns the strictly lower number

func PadLeftOrTrim

func PadLeftOrTrim(bb []byte, size int) []byte

PadLeftOrTrim left-pads the passed in byte array to the specified size, or trims the array if it exceeds the passed in size

func ParseUint64orHex

func ParseUint64orHex(val *string) (uint64, error)

ParseUint64orHex parses the given uint64 hex string into the number. It can parse the string with 0x prefix as well.

func RetryForever

func RetryForever(ctx context.Context, interval time.Duration, fn func(context.Context) error)

RetryForever will execute a function until it completes without error or the context is cancelled or expired.

func SaveFileSafe

func SaveFileSafe(path string, data []byte, perms fs.FileMode) error

Creates a file at path and with perms level permissions. If file already exists, owner and permissions are verified, and the file is overwritten.

func SetupDataDir

func SetupDataDir(dataDir string, paths []string, perms fs.FileMode) error

SetupDataDir sets up the data directory and the corresponding sub-directories

Types

type Duration

type Duration struct {
	time.Duration
}

Duration is a wrapper struct for time.Duration which implements json (un)marshaling

func (Duration) MarshalJSON

func (d Duration) MarshalJSON() ([]byte, error)

func (*Duration) UnmarshalJSON

func (d *Duration) UnmarshalJSON(b []byte) error

type JSONNumber

type JSONNumber struct {
	Value uint64
}

JSONNumber is the number represented in decimal or hex in json

func (*JSONNumber) MarshalJSON

func (d *JSONNumber) MarshalJSON() ([]byte, error)

func (*JSONNumber) UnmarshalJSON

func (d *JSONNumber) UnmarshalJSON(data []byte) error

Jump to

Keyboard shortcuts

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