MCPcopy Index your code
hub / github.com/CovenantSQL/CovenantSQL / Check

Method Check

worker/db_storage.go:69–101  ·  view source on GitHub ↗

Check implements kayak.types.Handler.Check.

(rawReq interface{})

Source from the content-addressed store, hash-verified

67
68// Check implements kayak.types.Handler.Check.
69func (db *Database) Check(rawReq interface{}) (err error) {
70 var req *types.Request
71 var ok bool
72 if req, ok = rawReq.(*types.Request); !ok || req == nil {
73 err = errors.Wrap(ErrInvalidRequest, "invalid request payload")
74 return
75 }
76
77 // verify signature, check time/sequence only
78 if err = req.Verify(); err != nil {
79 return
80 }
81
82 // verify timestamp
83 nowTime := getLocalTime()
84 minTime := nowTime.Add(-db.cfg.MaxWriteTimeGap)
85 maxTime := nowTime.Add(db.cfg.MaxWriteTimeGap)
86
87 if req.Header.Timestamp.Before(minTime) || req.Header.Timestamp.After(maxTime) {
88 err = errors.Wrap(ErrInvalidRequest, "invalid request time")
89 return
90 }
91
92 // verify sequence
93 if err = db.verifySequence(req.Header.ConnectionID, req.Header.SeqNo); err != nil {
94 return
95 }
96
97 // record sequence
98 db.recordSequence(req.Header.ConnectionID, req.Header.SeqNo)
99
100 return
101}
102
103// TrackerAndResponse defines a query tracker used by xenomint and an unsigned response.
104type TrackerAndResponse struct {

Callers

nothing calls this directly

Calls 5

VerifyMethod · 0.95
verifySequenceMethod · 0.95
recordSequenceMethod · 0.95
getLocalTimeFunction · 0.70
AddMethod · 0.45

Tested by

no test coverage detected