mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-23 03:51:29 +00:00
4008ea736f
* scaffolding for verification package * WIP blob verification methods * lock wrapper for safer forkchoice sharing * more solid cache and verification designs; adding tests * more test coverage, adding missing cache files * clearer func name * remove forkchoice borrower (it's in another PR) * revert temporary interface experiment * lint * nishant feedback * add comments with spec text to all verifications * some comments on public methods * invert confusing verification name * deep source * remove cache from ProposerCache + gaz * more consistently early return on error paths * messed up the test with the wrong config value * terence naming feedback * tests on BeginsAt * lint * deep source... * name errors after failure, not expectation * deep sooource * check len()==0 instead of nil so empty lists work * update test for EIP-7044 --------- Co-authored-by: Kasey Kirkham <kasey@users.noreply.github.com>
33 lines
1013 B
Go
33 lines
1013 B
Go
package verification
|
|
|
|
import "github.com/pkg/errors"
|
|
|
|
// ErrMissingVerification indicates that the given verification function was never performed on the value.
|
|
var ErrMissingVerification = errors.New("verification was not performed for requirement")
|
|
|
|
// VerificationMultiError is a custom error that can be used to access individual verification failures.
|
|
type VerificationMultiError struct {
|
|
r *results
|
|
err error
|
|
}
|
|
|
|
// Unwrap is used by errors.Is to unwrap errors.
|
|
func (ve VerificationMultiError) Unwrap() error {
|
|
return ve.err
|
|
}
|
|
|
|
// Error satisfies the standard error interface.
|
|
func (ve VerificationMultiError) Error() string {
|
|
return ve.err.Error()
|
|
}
|
|
|
|
// Failures provides access to map of Requirements->error messages
|
|
// so that calling code can introspect on what went wrong.
|
|
func (ve VerificationMultiError) Failures() map[Requirement]error {
|
|
return ve.r.failures()
|
|
}
|
|
|
|
func newVerificationMultiError(r *results, err error) VerificationMultiError {
|
|
return VerificationMultiError{r: r, err: err}
|
|
}
|