mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-06-22 14:44:30 +00:00
* chore: `golangci-lint` CI workflow
* fix: make `golangci-lint` happy
* chore: bump `actions/{checkout,setup-go}` versions
* chore: overhaul `.golanci.yml` config
* fix: all linter issues
* chore: exclude non-libevm linters + change deprecated option
* fix: add overflow check in example
* fix: try again; different local version?
* chore: this is trying my patience
* chore: enable `gci` and fix ordering
* chore: mark `ethclient/gethclient` test as flaky
* chore: mark `eth/catalyst` test as flaky
42 lines
1,005 B
Go
42 lines
1,005 B
Go
package ethtest
|
|
|
|
import (
|
|
"golang.org/x/exp/rand"
|
|
|
|
"github.com/ethereum/go-ethereum/common"
|
|
)
|
|
|
|
// PseudoRand extends [rand.Rand] (*not* crypto/rand).
|
|
type PseudoRand struct {
|
|
*rand.Rand
|
|
}
|
|
|
|
// NewPseudoRand returns a new PseudoRand with the given seed.
|
|
func NewPseudoRand(seed uint64) *PseudoRand {
|
|
return &PseudoRand{rand.New(rand.NewSource(seed))}
|
|
}
|
|
|
|
// Address returns a pseudorandom address.
|
|
func (r *PseudoRand) Address() (a common.Address) {
|
|
r.Read(a[:]) //nolint:gosec,errcheck // Guaranteed nil error
|
|
return a
|
|
}
|
|
|
|
// AddressPtr returns a pointer to a pseudorandom address.
|
|
func (r *PseudoRand) AddressPtr() *common.Address {
|
|
a := r.Address()
|
|
return &a
|
|
}
|
|
|
|
// Hash returns a pseudorandom hash.
|
|
func (r *PseudoRand) Hash() (h common.Hash) {
|
|
r.Read(h[:]) //nolint:gosec,errcheck // Guaranteed nil error
|
|
return h
|
|
}
|
|
|
|
// Bytes returns `n` pseudorandom bytes.
|
|
func (r *PseudoRand) Bytes(n uint) []byte {
|
|
b := make([]byte, n)
|
|
r.Read(b) //nolint:gosec,errcheck // Guaranteed nil error
|
|
return b
|
|
}
|