|
@@ -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)
|
|
|
+}
|