Browse Source

Map work submissions

Theophile Sandoz 3 years ago
parent
commit
b228a20493
2 changed files with 21 additions and 0 deletions
  1. 2 0
      query-node/manifest.yml
  2. 19 0
      query-node/mappings/src/bounty.ts

+ 2 - 0
query-node/manifest.yml

@@ -879,6 +879,8 @@ mappings:
       handler: bounty_WorkEntryWithdrawn
     - event: bounty.WorkEntrySlashed
       handler: bounty_WorkEntrySlashed
+    - event: bounty.WorkSubmitted
+      handler: bounty_WorkSubmitted
   extrinsicHandlers:
     # infer defaults here
     #- extrinsic: Balances.Transfer

+ 19 - 0
query-node/mappings/src/bounty.ts

@@ -26,6 +26,7 @@ import {
   WorkEntryAnnouncedEvent,
   WorkEntrySlashedEvent,
   WorkEntryWithdrawnEvent,
+  WorkSubmittedEvent,
 } from 'query-node/dist/model'
 import { Bounty as BountyEvents } from '../generated/types'
 import { deserializeMetadata, genericEventFields } from './common'
@@ -405,3 +406,21 @@ export async function bounty_WorkEntrySlashed({ event, store }: EventContext & S
 
   await store.save<WorkEntrySlashedEvent>(slashedInEvent)
 }
+
+export async function bounty_WorkSubmitted({ event, store }: EventContext & StoreContext): Promise<void> {
+  const entrySlashedEvent = new BountyEvents.WorkEntrySlashedEvent(event)
+  const [, entryId] = entrySlashedEvent.params
+  const eventTime = new Date(event.blockTimestamp)
+
+  // Update the entry
+  const entry = await getEntry(store, entryId)
+  entry.updatedAt = eventTime
+  entry.workSubmitted = true
+
+  await store.save<BountyEntry>(entry)
+
+  // Record the event
+  const submittedInEvent = new WorkSubmittedEvent({ ...genericEventFields(event), entry })
+
+  await store.save<WorkEntrySlashedEvent>(submittedInEvent)
+}