Browse Source

Map bounty stage when the max funding is reached

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

+ 2 - 0
query-node/manifest.yml

@@ -865,6 +865,8 @@ mappings:
       handler: bounty_BountyVetoed
     - event: bounty.BountyFunded
       handler: bounty_BountyFunded
+    - event: bounty.BountyMaxFundingReached
+      handler: bounty_BountyMaxFundingReached
   extrinsicHandlers:
     # infer defaults here
     #- extrinsic: Balances.Transfer

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

@@ -11,6 +11,7 @@ import {
   BountyFundedEvent,
   BountyFundingLimited,
   BountyFundingPerpetual,
+  BountyMaxFundingReachedEvent,
   BountyStage,
   BountyVetoedEvent,
   ForumThread,
@@ -233,3 +234,18 @@ export async function bounty_BountyFunded({ event, store }: EventContext & Store
 
   await store.save<BountyFundedEvent>(fundedEvent)
 }
+
+// Store BountyMaxFundingReached event and update the bounty stage
+export async function bounty_BountyMaxFundingReached({ event, store }: EventContext & StoreContext): Promise<void> {
+  const maxFundingReachedEvent = new BountyEvents.BountyMaxFundingReachedEvent(event)
+  const [bountyId] = maxFundingReachedEvent.params
+
+  // Record the event
+  const bounty = new Bounty({ id: String(bountyId) })
+  const maxFundingReachedInEvent = new BountyMaxFundingReachedEvent({ ...genericEventFields(event), bounty })
+
+  await store.save<BountyMaxFundingReachedEvent>(maxFundingReachedInEvent)
+
+  // Update the bounty stage
+  endFundingPeriod(store, bounty)
+}