MCPcopy Create free account
hub / github.com/akash-network/node / PostSnapshotHash

Method PostSnapshotHash

x/verification/keeper/msg.go:298–331  ·  view source on GitHub ↗
(ctx sdk.Context, provider sdk.AccAddress, snapshotHash []byte, resources vtypes.ResourceSummary, snapshotTimestamp time.Time)

Source from the content-addressed store, hash-verified

296}
297
298func (k *keeper) PostSnapshotHash(ctx sdk.Context, provider sdk.AccAddress, snapshotHash []byte, resources vtypes.ResourceSummary, snapshotTimestamp time.Time) error {
299 if !k.providerExists(ctx, provider) {
300 return moduletypes.ErrProviderNotRegistered
301 }
302 if err := validateHash(snapshotHash, "snapshot hash"); err != nil {
303 return err
304 }
305 if snapshotTimestamp.IsZero() || snapshotTimestamp.After(ctx.BlockTime()) {
306 return moduletypes.ErrSnapshotTooOld
307 }
308
309 params := k.GetParams(ctx)
310 if ctx.BlockTime().Sub(snapshotTimestamp) > params.MaxSnapshotAge {
311 return moduletypes.ErrSnapshotTooOld
312 }
313
314 record := vtypes.ProviderSnapshotRecord{
315 Provider: provider.String(),
316 SnapshotHash: snapshotHash,
317 ResourceSummary: resources,
318 PostedAt: ctx.BlockTime(),
319 SnapshotTimestamp: snapshotTimestamp,
320 ComplianceDeadline: ctx.BlockTime().Add(params.SnapshotHashInterval),
321 Suspended: false,
322 }
323 if err := k.SetProviderSnapshot(ctx, record); err != nil {
324 return err
325 }
326 return ctx.EventManager().EmitTypedEvent(&vtypes.EventSnapshotHashPosted{
327 Provider: record.Provider,
328 SnapshotHash: record.SnapshotHash,
329 ComplianceDeadline: record.ComplianceDeadline,
330 })
331}
332
333func (k *keeper) OpenAuditEscrow(
334 ctx sdk.Context,

Callers

nothing calls this directly

Calls 6

providerExistsMethod · 0.95
GetParamsMethod · 0.95
SetProviderSnapshotMethod · 0.95
validateHashFunction · 0.85
AfterMethod · 0.80
StringMethod · 0.45

Tested by

no test coverage detected