util

package
v0.6.0-alpha.4 Latest Latest
Warning

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

Go to latest
Published: Mar 28, 2023 License: Apache-2.0 Imports: 25 Imported by: 5

Documentation

Index

Constants

View Source
const RatioByteSize = serializer.UInt32ByteSize + serializer.UInt32ByteSize

A + B

Variables

View Source
var (
	Big0       = big.NewInt(0)
	Big1       = big.NewInt(1)
	MaxUint256 = new(big.Int).Sub(new(big.Int).Lsh(Big1, 256), Big1)
)

Functions

func AliasIDFromAliasOutput added in v0.3.0

func AliasIDFromAliasOutput(out *iotago.AliasOutput, outID iotago.OutputID) iotago.AliasID

func AllDifferentStrings added in v0.2.0

func AllDifferentStrings(lst ...string) bool

func Bytes

func Bytes(obj interface{ Write(io.Writer) error }) ([]byte, error)

func CloneMap added in v1.0.3

func CloneMap[K comparable, T Cloneable[T]](base map[K]T) map[K]T

CloneMap clones every element in the the map into cloned and returns the cloned map.

func CloneSlice added in v1.0.3

func CloneSlice[T Cloneable[T]](base []T) []T

CloneSlice clones every element in the the slice into cloned and returns the cloned slice.

func CreateDirectoryForFilePath added in v1.0.3

func CreateDirectoryForFilePath(filePath string, perm os.FileMode) error

func CustomTokensDecimalsToEthereumDecimals added in v0.3.8

func CustomTokensDecimalsToEthereumDecimals(value *big.Int, customTokenDecimals uint32) *big.Int

custom token => wei

func DecodeHexBinaryMarshaled added in v1.0.3

func DecodeHexBinaryMarshaled(dataHex string, value encoding.BinaryUnmarshaler) error

func DecodeSliceHexBinaryMarshaled added in v1.0.3

func DecodeSliceHexBinaryMarshaled[M encoding.BinaryUnmarshaler](dataHex []string, values []M) error

func EncodeHexBinaryMarshaled added in v1.0.3

func EncodeHexBinaryMarshaled(value encoding.BinaryMarshaler) (string, error)

func EncodeSliceHexBinaryMarshaled added in v1.0.3

func EncodeSliceHexBinaryMarshaled[M encoding.BinaryMarshaler](values []M) ([]string, error)

func EthereumDecimalsToCustomTokenDecimals added in v0.3.8

func EthereumDecimalsToCustomTokenDecimals(value *big.Int, customTokenDecimals uint32) *big.Int

wei => custom token

func ExecuteIfNotNil added in v1.0.3

func ExecuteIfNotNil(function func())

func ExistsFilePath added in v0.1.0

func ExistsFilePath(filePath string) (bool, error)

ExistsFilePath returns whether the given file or directory exists.

func GentleTruncate added in v0.1.0

func GentleTruncate(s string, length int) string

func GetHashValue

func GetHashValue(obj interface{ Bytes() []byte }) hashing.HashValue

func Int32To4Bytes added in v0.2.0

func Int32To4Bytes(val int32) []byte

func Int64From8Bytes added in v0.1.0

func Int64From8Bytes(b []byte) (int64, error)

func Int64To8Bytes added in v0.2.0

func Int64To8Bytes(val int64) []byte

func IsSlug added in v1.0.3

func IsSlug(s string) bool

func IsSubset added in v0.2.0

func IsSubset(sub, super []string) bool

func IsZeroBigInt added in v0.3.0

func IsZeroBigInt(bi *big.Int) bool

func MakeRange added in v0.2.0

func MakeRange(from, to int) []int

MakeRange returns slice with a range of elements starting from to up to-1, inclusive

func MinUint64 added in v0.3.0

func MinUint64(a, b uint64) uint64

func MustBytes

func MustBytes(obj interface{ Write(io.Writer) error }) []byte

func MustTokenScheme added in v0.3.0

func MustTokenScheme(tokenScheme iotago.TokenScheme) *iotago.SimpleTokenScheme

func MustUint16From2Bytes added in v0.1.0

func MustUint16From2Bytes(b []byte) uint16

func MustUint32From4Bytes added in v0.1.0

func MustUint32From4Bytes(b []byte) uint32

func MustUint64From8Bytes added in v0.1.0

func MustUint64From8Bytes(b []byte) uint64

func MustUint8From1Bytes added in v0.2.3

func MustUint8From1Bytes(b []byte) uint8

func NFTIDFromNFTOutput added in v0.3.0

func NFTIDFromNFTOutput(nftOutput *iotago.NFTOutput, outputID iotago.OutputID) iotago.NFTID

func NewPseudoRand added in v1.0.3

func NewPseudoRand(seed ...int64) *rand.Rand

func PrefixHex added in v1.0.3

func PrefixHex(data []byte, prefixLen int) string

Mostly for logging.

func ReadBoolByte

func ReadBoolByte(r io.Reader, cond *bool) error

func ReadByte

func ReadByte(r io.Reader) (byte, error)

func ReadBytes16

func ReadBytes16(r io.Reader) ([]byte, error)

func ReadBytes16FromMarshalUtil added in v0.3.0

func ReadBytes16FromMarshalUtil(mu *marshalutil.MarshalUtil) ([]byte, error)

func ReadBytes32

func ReadBytes32(r io.Reader) ([]byte, error)

func ReadBytes8 added in v0.3.0

func ReadBytes8(r io.Reader) ([]byte, error)

func ReadBytes8FromMarshalUtil added in v0.3.0

func ReadBytes8FromMarshalUtil(mu *marshalutil.MarshalUtil) ([]byte, error)

func ReadHashValue

func ReadHashValue(r io.Reader, h *hashing.HashValue) error

func ReadInt32 added in v0.2.0

func ReadInt32(r io.Reader, pval *int32) error

func ReadInt64

func ReadInt64(r io.Reader, pval *int64) error

func ReadIntsAsBits added in v0.3.0

func ReadIntsAsBits(r io.Reader) ([]int, error)

func ReadMarshaled added in v0.1.0

func ReadMarshaled(r io.Reader, val encoding.BinaryUnmarshaler) error

ReadMarshaled supports kyber.Point, kyber.Scalar and similar.

func ReadOutputID added in v0.2.0

func ReadOutputID(r io.Reader) (iotago.OutputID, error)

func ReadString16

func ReadString16(r io.Reader) (string, error)

func ReadStrings16

func ReadStrings16(r io.Reader) ([]string, error)

func ReadTime

func ReadTime(r io.Reader, ts *time.Time) error

func ReadTransactionID added in v0.3.0

func ReadTransactionID(r io.Reader, txid *iotago.TransactionID) error

func ReadUint16

func ReadUint16(r io.Reader, pval *uint16) error

func ReadUint32

func ReadUint32(r io.Reader, pval *uint32) error

func ReadUint64

func ReadUint64(r io.Reader, pval *uint64) error

func ReadUint8 added in v0.2.3

func ReadUint8(r io.Reader, pval *uint8) error

func Same added in v1.0.3

func Same[V Equated[V]](a, b []V) bool

Checks two slices, if they represent the same sets (same elements, maybe a different order).

func SliceShortString added in v1.0.3

func SliceShortString[E ShortStringable](slice []E) string

func StringInList added in v0.2.0

func StringInList(s string, lst []string) bool

func TerminateCmdWhenTestStops added in v0.3.0

func TerminateCmdWhenTestStops(cmd *exec.Cmd)

func TimeOrNever added in v1.0.3

func TimeOrNever(t time.Time) string

func TimeOrNever2 added in v1.0.3

func TimeOrNever2(t time.Time, never string) string

func ToBigInt added in v0.3.0

func ToBigInt(i interface{}) *big.Int

func Uint16From2Bytes

func Uint16From2Bytes(b []byte) (uint16, error)

func Uint16To2Bytes

func Uint16To2Bytes(val uint16) []byte

func Uint32From4Bytes

func Uint32From4Bytes(b []byte) (uint32, error)

func Uint32To4Bytes

func Uint32To4Bytes(val uint32) []byte

func Uint64From8Bytes

func Uint64From8Bytes(b []byte) (uint64, error)

func Uint64To8Bytes

func Uint64To8Bytes(val uint64) []byte

func Uint8From1Bytes added in v0.2.3

func Uint8From1Bytes(b []byte) (uint8, error)

func Uint8To1Bytes added in v0.2.3

func Uint8To1Bytes(val uint8) []byte

func ValidPermutation

func ValidPermutation(perm []uint16) bool

func WriteBoolByte

func WriteBoolByte(w io.Writer, cond bool) error

func WriteByte

func WriteByte(w io.Writer, val byte) error

func WriteBytes16

func WriteBytes16(w io.Writer, data []byte) error

func WriteBytes16ToMarshalUtil added in v0.3.0

func WriteBytes16ToMarshalUtil(data []byte, mu *marshalutil.MarshalUtil)

func WriteBytes32

func WriteBytes32(w io.Writer, data []byte) error

func WriteBytes8 added in v0.3.0

func WriteBytes8(w io.Writer, data []byte) error

func WriteBytes8ToMarshalUtil added in v0.3.0

func WriteBytes8ToMarshalUtil(data []byte, mu *marshalutil.MarshalUtil)

func WriteInt64

func WriteInt64(w io.Writer, val int64) error

func WriteIntsAsBits added in v0.3.0

func WriteIntsAsBits(w io.Writer, ints []int) error

func WriteMarshaled added in v0.1.0

func WriteMarshaled(w io.Writer, val encoding.BinaryMarshaler) error

WriteMarshaled supports kyber.Point, kyber.Scalar and similar.

func WriteOutputID added in v0.3.0

func WriteOutputID(w io.Writer, outputID iotago.OutputID) error

func WriteString16

func WriteString16(w io.Writer, str string) error

func WriteStrings16

func WriteStrings16(w io.Writer, strs []string) error

func WriteTime

func WriteTime(w io.Writer, ts time.Time) error

func WriteUint16

func WriteUint16(w io.Writer, val uint16) error

func WriteUint32

func WriteUint32(w io.Writer, val uint32) error

func WriteUint64

func WriteUint64(w io.Writer, val uint64) error

func WriteUint8 added in v0.2.3

func WriteUint8(w io.Writer, val uint8) error

Types

type BitVector added in v0.3.0

type BitVector interface {
	SetBits(positions []int) BitVector
	AsInts() []int
	Bytes() []byte
}

func NewFixedSizeBitVector added in v0.3.0

func NewFixedSizeBitVector(size int) BitVector

func NewFixedSizeBitVectorFromMarshalUtil added in v0.3.0

func NewFixedSizeBitVectorFromMarshalUtil(mu *marshalutil.MarshalUtil) (BitVector, error)

type Cloneable added in v1.0.3

type Cloneable[T any] interface {
	Clone() T
}

type ComparableAddress added in v1.0.3

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

func NewComparableAddress added in v1.0.3

func NewComparableAddress(address iotago.Address) *ComparableAddress

func (*ComparableAddress) Address added in v1.0.3

func (c *ComparableAddress) Address() iotago.Address

func (*ComparableAddress) Key added in v1.0.3

func (c *ComparableAddress) Key() string

func (*ComparableAddress) String added in v1.0.3

func (c *ComparableAddress) String() string

type ComparableString added in v1.0.3

type ComparableString string

func (ComparableString) Key added in v1.0.3

func (c ComparableString) Key() string

func (ComparableString) String added in v1.0.3

func (c ComparableString) String() string

type Equated added in v1.0.3

type Equated[V any] interface {
	Equals(other V) bool
}

type Permutation16

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

Permutation16 deterministic permutation of integers from 0 to size-1

func NewPermutation16

func NewPermutation16(size uint16, seedOptional ...int64) (*Permutation16, error)

HINT: Seed should only be provided in tests to obtain predicted test results. If used in production, the seed should not be set, because it will be generated using cryptographically secure random number generator. The seed itself will be used to initialize a pseudo random number generator which is used to shuffle the permutations. Unless the permutations must be exactly the same between different calls (probable from different nodes). In the latter case, the seed should be the same for all the calls which expect the same permutation. This function allways returns a permutation; error should be considered as a warning that permutation was seeded incorrectly.

func (*Permutation16) Current

func (perm *Permutation16) Current() uint16

func (*Permutation16) ForEach added in v0.3.0

func (perm *Permutation16) ForEach(f func(i uint16) bool)

func (*Permutation16) GetArray

func (perm *Permutation16) GetArray() []uint16

func (*Permutation16) Next

func (perm *Permutation16) Next() uint16

func (*Permutation16) NextNoCycles added in v0.3.0

func (perm *Permutation16) NextNoCycles() uint16

If the whole permutation is obtained, reshuffles it to avoid cycles

func (*Permutation16) Shuffle

func (perm *Permutation16) Shuffle() *Permutation16

type Ratio32 added in v0.3.0

type Ratio32 struct {
	A uint32 `json:"a" swagger:"min(0),required"`
	B uint32 `json:"b" swagger:"min(0),required"`
}

Ratio32 represents a ratio (a:b) between two quantities, expressed as two uint32 values.

func Ratio32FromBytes added in v0.3.0

func Ratio32FromBytes(bytes []byte) (Ratio32, error)

func Ratio32FromString added in v1.0.3

func Ratio32FromString(s string) (Ratio32, error)

func (Ratio32) Bytes added in v0.3.0

func (r Ratio32) Bytes() []byte

func (Ratio32) HasZeroComponent added in v1.0.3

func (r Ratio32) HasZeroComponent() bool

func (*Ratio32) Set added in v0.3.0

func (r *Ratio32) Set(s string) error

Set is part of the pflag.Value interface. It accepts a string in the form "a:b".

func (Ratio32) String added in v0.3.0

func (r Ratio32) String() string

func (Ratio32) Type added in v0.3.0

func (r Ratio32) Type() string

Type is part of the pflag.Value interface.

func (Ratio32) XCeil64 added in v0.3.0

func (r Ratio32) XCeil64(y uint64) uint64

XCeil64 computes x = ceil(y * a / b)

func (Ratio32) XFloor64 added in v0.3.0

func (r Ratio32) XFloor64(y uint64) uint64

XFloor64 computes x = floor(y * a / b)

func (Ratio32) YCeil64 added in v0.3.0

func (r Ratio32) YCeil64(x uint64) uint64

YCeil64 computes y = ceil(x * b / a)

func (Ratio32) YFloor64 added in v0.3.0

func (r Ratio32) YFloor64(x uint64) uint64

YFloor64 computes y = floor(x * b / a)

type ShortStringable added in v1.0.3

type ShortStringable interface {
	ShortString() string
}

type Timer added in v0.3.0

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

func NewTimer added in v0.3.0

func NewTimer() *Timer

func (*Timer) Done added in v1.0.3

func (t *Timer) Done(name string)

func (*Timer) Duration added in v0.3.0

func (t *Timer) Duration() time.Duration

func (*Timer) Step added in v1.0.3

func (t *Timer) Step(name string)

func (*Timer) String added in v1.0.3

func (t *Timer) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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