github.com/evdatsion/aphelion-dpos-bft@v0.32.1/lite/errors/errors.go (about)

     1  package errors
     2  
     3  import (
     4  	"fmt"
     5  
     6  	cmn "github.com/evdatsion/aphelion-dpos-bft/libs/common"
     7  )
     8  
     9  //----------------------------------------
    10  // Error types
    11  
    12  type errCommitNotFound struct{}
    13  
    14  func (e errCommitNotFound) Error() string {
    15  	return "Commit not found by provider"
    16  }
    17  
    18  type errUnexpectedValidators struct {
    19  	got  []byte
    20  	want []byte
    21  }
    22  
    23  func (e errUnexpectedValidators) Error() string {
    24  	return fmt.Sprintf("Validator set is different. Got %X want %X",
    25  		e.got, e.want)
    26  }
    27  
    28  type errUnknownValidators struct {
    29  	chainID string
    30  	height  int64
    31  }
    32  
    33  func (e errUnknownValidators) Error() string {
    34  	return fmt.Sprintf("Validators are unknown or missing for chain %s and height %d",
    35  		e.chainID, e.height)
    36  }
    37  
    38  type errEmptyTree struct{}
    39  
    40  func (e errEmptyTree) Error() string {
    41  	return "Tree is empty"
    42  }
    43  
    44  //----------------------------------------
    45  // Methods for above error types
    46  
    47  //-----------------
    48  // ErrCommitNotFound
    49  
    50  // ErrCommitNotFound indicates that a the requested commit was not found.
    51  func ErrCommitNotFound() error {
    52  	return cmn.ErrorWrap(errCommitNotFound{}, "")
    53  }
    54  
    55  func IsErrCommitNotFound(err error) bool {
    56  	if err_, ok := err.(cmn.Error); ok {
    57  		_, ok := err_.Data().(errCommitNotFound)
    58  		return ok
    59  	}
    60  	return false
    61  }
    62  
    63  //-----------------
    64  // ErrUnexpectedValidators
    65  
    66  // ErrUnexpectedValidators indicates a validator set mismatch.
    67  func ErrUnexpectedValidators(got, want []byte) error {
    68  	return cmn.ErrorWrap(errUnexpectedValidators{
    69  		got:  got,
    70  		want: want,
    71  	}, "")
    72  }
    73  
    74  func IsErrUnexpectedValidators(err error) bool {
    75  	if err_, ok := err.(cmn.Error); ok {
    76  		_, ok := err_.Data().(errUnexpectedValidators)
    77  		return ok
    78  	}
    79  	return false
    80  }
    81  
    82  //-----------------
    83  // ErrUnknownValidators
    84  
    85  // ErrUnknownValidators indicates that some validator set was missing or unknown.
    86  func ErrUnknownValidators(chainID string, height int64) error {
    87  	return cmn.ErrorWrap(errUnknownValidators{chainID, height}, "")
    88  }
    89  
    90  func IsErrUnknownValidators(err error) bool {
    91  	if err_, ok := err.(cmn.Error); ok {
    92  		_, ok := err_.Data().(errUnknownValidators)
    93  		return ok
    94  	}
    95  	return false
    96  }
    97  
    98  //-----------------
    99  // ErrEmptyTree
   100  
   101  func ErrEmptyTree() error {
   102  	return cmn.ErrorWrap(errEmptyTree{}, "")
   103  }
   104  
   105  func IsErrEmptyTree(err error) bool {
   106  	if err_, ok := err.(cmn.Error); ok {
   107  		_, ok := err_.Data().(errEmptyTree)
   108  		return ok
   109  	}
   110  	return false
   111  }