mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-10 13:58:09 -05:00
* change field IDs in `AggregateAttestationAndProofElectra`
* fix typo in `validator.proto`
* correct slashing indices length and shashings length
* check length in indexed attestation's `ToConsensus` method
* use `fieldparams.BLSSignatureLength`
* Add length checks for execution request
* fix typo in `beacon_state.proto`
* fix typo in `ssz_proto_library.bzl`
* fix error messages about incorrect types in block factory
* add Electra case to `BeaconBlockContainerToSignedBeaconBlock`
* move PeerDAS config items to PeerDAS section
* remove redundant params
* rename `PendingDepositLimit` to `PendingDepositsLimit`
* improve requests unmarshaling errors
* rename `get_validator_max_effective_balance` to `get_max_effective_balance`
* fix typo in `consolidations.go`
* rename `index` to `validator_index` in `PendingPartialWithdrawal`
* rename `randomByte` to `randomBytes` in `validators.go`
* fix for version in a comment in `validator.go`
* changelog <3
* Revert "rename `index` to `validator_index` in `PendingPartialWithdrawal`"
This reverts commit 87e4da0ea2.
48 lines
1.3 KiB
Go
48 lines
1.3 KiB
Go
package bytesutil
|
|
|
|
import (
|
|
"fmt"
|
|
"regexp"
|
|
|
|
"github.com/ethereum/go-ethereum/common/hexutil"
|
|
"github.com/pkg/errors"
|
|
"github.com/prysmaticlabs/prysm/v5/container/slice"
|
|
)
|
|
|
|
var hexRegex = regexp.MustCompile("^0x[0-9a-fA-F]+$")
|
|
|
|
// IsHex checks whether the byte array is a hex number prefixed with '0x'.
|
|
func IsHex(b []byte) bool {
|
|
if b == nil {
|
|
return false
|
|
}
|
|
return hexRegex.Match(b)
|
|
}
|
|
|
|
// DecodeHexWithLength takes a string and a length in bytes,
|
|
// and validates whether the string is a hex and has the correct length.
|
|
func DecodeHexWithLength(s string, length int) ([]byte, error) {
|
|
bytes, err := hexutil.Decode(s)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, fmt.Sprintf("%s is not a valid hex", s))
|
|
}
|
|
if len(bytes) != length {
|
|
return nil, fmt.Errorf("%s is not length %d bytes", s, length)
|
|
}
|
|
return bytes, nil
|
|
}
|
|
|
|
// DecodeHexWithMaxLength takes a string and a length in bytes,
|
|
// and validates whether the string is a hex and has the correct length.
|
|
func DecodeHexWithMaxLength(s string, maxLength uint64) ([]byte, error) {
|
|
bytes, err := hexutil.Decode(s)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, fmt.Sprintf("%s is not a valid hex", s))
|
|
}
|
|
err = slice.VerifyMaxLength(bytes, maxLength)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, fmt.Sprintf("length of %s exceeds max of %d bytes", s, maxLength))
|
|
}
|
|
return bytes, nil
|
|
}
|