github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/merkletree2/errors.go (about) 1 package merkletree2 2 3 import "fmt" 4 5 // InvalidConfigError happens when trying to construct an invalid tree configuration. 6 type InvalidConfigError struct { 7 reason string 8 } 9 10 func (e InvalidConfigError) Error() string { 11 return fmt.Sprintf("Invalid Config Error: %s", e.reason) 12 } 13 14 // NewInvalidConfigError returns a new error 15 func NewInvalidConfigError(reason string) InvalidConfigError { 16 return InvalidConfigError{reason: reason} 17 } 18 19 // InvalidKeyError is returned when trying to use a key of the wrong length in a tree. 20 type InvalidKeyError struct{} 21 22 func (e InvalidKeyError) Error() string { 23 return "Invalid Key (has the wrong length)." 24 } 25 26 // NewInvalidKeyError returns a new error 27 func NewInvalidKeyError() InvalidKeyError { 28 return InvalidKeyError{} 29 } 30 31 // ProofVerificationFailedError is returned when a merkle tree proof verification fails. 32 type ProofVerificationFailedError struct { 33 reason error 34 } 35 36 func (e ProofVerificationFailedError) Error() string { 37 return fmt.Sprintf("Proof Verification Error: %s", e.reason) 38 } 39 40 // NewProofVerificationFailedError returns a new error 41 func NewProofVerificationFailedError(reason error) ProofVerificationFailedError { 42 return ProofVerificationFailedError{reason: reason} 43 } 44 45 // NodeNotFoundError is returned by a StorageEngine when trying to fetch an internal node 46 // which is not part of the tree at a specific Seqno. 47 type NodeNotFoundError struct{} 48 49 func (e NodeNotFoundError) Error() string { 50 return "Node not found." 51 } 52 53 // NewNodeNotFoundError returns a new error 54 func NewNodeNotFoundError() NodeNotFoundError { 55 return NodeNotFoundError{} 56 } 57 58 // KeyNotFoundError is returned when trying to fetch a key which is not part of 59 // the tree at a specific Seqno. 60 type KeyNotFoundError struct{} 61 62 func (e KeyNotFoundError) Error() string { 63 return "Key not found." 64 } 65 66 // NewKeyNotFoundError returns a new error 67 func NewKeyNotFoundError() KeyNotFoundError { 68 return KeyNotFoundError{} 69 } 70 71 // NoLatestRootFoundError is returned when trying to fetch the latest root from 72 // an empty tree. 73 type NoLatestRootFoundError struct{} 74 75 func (e NoLatestRootFoundError) Error() string { 76 return "No latest root was found." 77 } 78 79 // NewNoLatestRootFoundError returns a new error 80 func NewNoLatestRootFoundError() NoLatestRootFoundError { 81 return NoLatestRootFoundError{} 82 } 83 84 // InvalidSeqnoError is returned when trying to lookup a record with an invalid 85 // Seqno 86 type InvalidSeqnoError struct { 87 s Seqno 88 reason error 89 } 90 91 func (e InvalidSeqnoError) Error() string { 92 return fmt.Sprintf("Invalid Seqno Error (Seqno: %v): %s", e.s, e.reason) 93 } 94 95 // NewInvalidConfigError returns a new error 96 func NewInvalidSeqnoError(s Seqno, reason error) InvalidSeqnoError { 97 return InvalidSeqnoError{s: s, reason: reason} 98 }