utils

package
v0.6.3-rc.1 Latest Latest
Warning

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

Go to latest
Published: May 19, 2024 License: GPL-3.0, LGPL-3.0 Imports: 15 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BigNumEqual

func BigNumEqual(x, y *big.Int) bool

BigNumEqual returns true if x and y are equivalent ie. both nil or both contain the same value.

func BytesToHashSlice added in v0.6.3

func BytesToHashSlice(b []byte) []common.Hash

BytesToHashSlice packs [b] into a slice of hash values with zero padding to the right if the length of b is not a multiple of 32.

func HashSliceToBytes added in v0.6.3

func HashSliceToBytes(hashes []common.Hash) []byte

HashSliceToBytes serializes a []common.Hash into a tightly packed byte array.

func IncrOne

func IncrOne(bytes []byte)

IncrOne increments bytes value by one

func IsBlockForked added in v0.6.3

func IsBlockForked(s, head *big.Int) bool

IsBlockForked returns whether a fork scheduled at block s is active at the given head block. Note: [s] and [head] can be either a block number or a block timestamp.

func IsForkTransition

func IsForkTransition(fork *uint64, parent *uint64, current uint64) bool

IsForkTransition returns true if [fork] activates during the transition from [parent] to [current]. Taking [parent] as a pointer allows for us to pass nil when checking forks that activate during genesis. Note: this works for both block number and timestamp activated forks.

func IsTimestampForked added in v0.6.3

func IsTimestampForked(s *uint64, head uint64) bool

IsTimestampForked returns whether a fork scheduled at timestamp s is active at the given head timestamp. Whilst this method is the same as isBlockForked, they are explicitly separate for clearer reading.

func NewUint64 added in v0.6.3

func NewUint64(val uint64) *uint64

func TestSnowContext added in v0.6.3

func TestSnowContext() *snow.Context

func TimeToNewUint64 added in v0.6.3

func TimeToNewUint64(time time.Time) *uint64

func Uint64PtrEqual added in v0.6.3

func Uint64PtrEqual(x, y *uint64) bool

Uint64PtrEqual returns true if x and y pointers are equivalent ie. both nil or both contain the same value.

func Uint64ToTime added in v0.6.3

func Uint64ToTime(val *uint64) time.Time

Types

type AddressRange added in v0.6.3

type AddressRange struct {
	Start common.Address
	End   common.Address
}

AddressRange represents a continuous range of addresses

func (*AddressRange) Contains added in v0.6.3

func (a *AddressRange) Contains(addr common.Address) bool

Contains returns true iff [addr] is contained within the (inclusive) range of addresses defined by [a].

type BoundedWorkers added in v0.6.3

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

func NewBoundedWorkers added in v0.6.3

func NewBoundedWorkers(max int) *BoundedWorkers

NewBoundedWorkers returns an instance of BoundedWorkers that will spawn up to [max] goroutines.

func (*BoundedWorkers) Execute added in v0.6.3

func (b *BoundedWorkers) Execute(f func())

Execute the given function on an existing goroutine waiting for more work, a new goroutine, or return if the context is canceled.

Execute must not be called after Wait, otherwise it might panic.

func (*BoundedWorkers) Wait added in v0.6.3

func (b *BoundedWorkers) Wait() int

Wait returns after all enqueued work finishes and all goroutines to exit. Wait returns the number of workers that were spawned during the run.

Wait can only be called after ALL calls to [Execute] have returned.

It is safe to call Wait multiple times but not safe to call [Execute] after [Wait] has been called.

type MeteredCache

type MeteredCache struct {
	*fastcache.Cache
	// contains filtered or unexported fields
}

MeteredCache wraps *fastcache.Cache and periodically pulls stats from it.

func NewMeteredCache

func NewMeteredCache(size int, namespace string, updateFrequency uint64) *MeteredCache

NewMeteredCache returns a new MeteredCache that will update stats to the provided namespace once per each [updateFrequency] operations. Note: if [updateFrequency] is passed as 0, it will be treated as 1.

func (*MeteredCache) Del

func (mc *MeteredCache) Del(k []byte)

func (*MeteredCache) Get

func (mc *MeteredCache) Get(dst, k []byte) []byte

func (*MeteredCache) GetBig

func (mc *MeteredCache) GetBig(dst, k []byte) []byte

func (*MeteredCache) Has

func (mc *MeteredCache) Has(k []byte) bool

func (*MeteredCache) HasGet

func (mc *MeteredCache) HasGet(dst, k []byte) ([]byte, bool)

func (*MeteredCache) Set

func (mc *MeteredCache) Set(k, v []byte)

func (*MeteredCache) SetBig

func (mc *MeteredCache) SetBig(k, v []byte)

Jump to

Keyboard shortcuts

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