1package uint25623import (4 "errors"5)67var (8 ErrEmptyString = errors.New("empty hex string")9 ErrSyntax = errors.New("invalid hex string")10 ErrRange = errors.New("number out of range")11 ErrMissingPrefix = errors.New("hex string without 0x prefix")12 ErrEmptyNumber = errors.New("hex string \"0x\"")13 ErrLeadingZero = errors.New("hex number with leading zero digits")14 ErrBig256Range = errors.New("hex number > 256 bits")15 ErrBadBufferLength = errors.New("bad ssz buffer length")16 ErrBadEncodedLength = errors.New("bad ssz encoded length")17 ErrInvalidBase = errors.New("invalid base")18 ErrInvalidBitSize = errors.New("invalid bit size")19)2021type u256Error struct {22 fn string // function name23 input string24 err error25}2627func (e *u256Error) Error() string {28 return e.fn + ": " + e.input + ": " + e.err.Error()29}3031func (e *u256Error) Unwrap() error {32 return e.err33}3435func errEmptyString(fn, input string) error {36 return &u256Error{fn: fn, input: input, err: ErrEmptyString}37}3839func errSyntax(fn, input string) error {40 return &u256Error{fn: fn, input: input, err: ErrSyntax}41}4243func errMissingPrefix(fn, input string) error {44 return &u256Error{fn: fn, input: input, err: ErrMissingPrefix}45}4647func errEmptyNumber(fn, input string) error {48 return &u256Error{fn: fn, input: input, err: ErrEmptyNumber}49}5051func errLeadingZero(fn, input string) error {52 return &u256Error{fn: fn, input: input, err: ErrLeadingZero}53}5455func errRange(fn, input string) error {56 return &u256Error{fn: fn, input: input, err: ErrRange}57}5859func errBig256Range(fn, input string) error {60 return &u256Error{fn: fn, input: input, err: ErrBig256Range}61}6263func errBadBufferLength(fn, input string) error {64 return &u256Error{fn: fn, input: input, err: ErrBadBufferLength}65}6667func errInvalidBase(fn string, base int) error {68 return &u256Error{fn: fn, input: string(base), err: ErrInvalidBase}69}7071func errInvalidBitSize(fn string, bitSize int) error {72 return &u256Error{fn: fn, input: string(bitSize), err: ErrInvalidBitSize}73}74Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.