Skip to content

Commit 34ce79c

Browse files
fix: rework node/farm certification
1 parent c50124e commit 34ce79c

File tree

3 files changed

+16
-50
lines changed

3 files changed

+16
-50
lines changed

src/mappings/farms.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {
22
EventHandlerContext,
33
} from "@subsquid/substrate-processor";
44
import { Farm, FarmCertification, PublicIp } from "../model";
5-
import { TfgridModuleFarmStoredEvent, TfgridModuleFarmDeletedEvent, TfgridModuleFarmUpdatedEvent, TfgridModuleFarmPayoutV2AddressRegisteredEvent, TfgridModuleFarmCertificationSetEvent } from "../types/events";
5+
import { TfgridModuleFarmStoredEvent, TfgridModuleFarmDeletedEvent, TfgridModuleFarmUpdatedEvent, TfgridModuleFarmPayoutV2AddressRegisteredEvent, TfgridModuleFarmCertificationSetEvent, TfgridModuleFarmingPolicySetEvent } from "../types/events";
66
import * as v63 from '../types/v63'
77

88
export async function farmStored(ctx: EventHandlerContext) {
@@ -68,17 +68,29 @@ export async function farmStored(ctx: EventHandlerContext) {
6868
export async function farmUpdated(ctx: EventHandlerContext) {
6969
const farmUpdatedEvent = new TfgridModuleFarmUpdatedEvent(ctx)
7070

71+
let certification = FarmCertification.NotCertified
72+
7173
let farmUpdatedEventParsed
7274
if (farmUpdatedEvent.isV9) {
7375
farmUpdatedEventParsed = farmUpdatedEvent.asV9
7476
} else if (farmUpdatedEvent.isV50) {
7577
farmUpdatedEventParsed = farmUpdatedEvent.asV50
7678
} else if (farmUpdatedEvent.isV63) {
7779
farmUpdatedEventParsed = farmUpdatedEvent.asV63
80+
switch(farmUpdatedEvent.asV101.certification.__kind) {
81+
case "Gold": {
82+
certification = FarmCertification.Gold
83+
}
84+
}
7885
} else if (farmUpdatedEvent.isV101) {
7986
let eventValue = ctx.event.params[0].value as v63.Farm
8087
eventValue.dedicatedFarm = false
8188
farmUpdatedEventParsed = farmUpdatedEvent.asV101
89+
switch(farmUpdatedEvent.asV101.certification.__kind) {
90+
case "Gold": {
91+
certification = FarmCertification.Gold
92+
}
93+
}
8294
}
8395

8496
if (!farmUpdatedEventParsed) return
@@ -90,6 +102,7 @@ export async function farmUpdated(ctx: EventHandlerContext) {
90102
savedFarm.name = farmUpdatedEventParsed.name.toString()
91103
savedFarm.twinID = farmUpdatedEventParsed.twinId
92104
savedFarm.pricingPolicyID = farmUpdatedEventParsed.pricingPolicyId
105+
savedFarm.certification = certification
93106

94107
await farmUpdatedEventParsed.publicIps.forEach(async ip => {
95108
if (ip.ip.toString().indexOf('\x00') >= 0) {

src/mappings/nodes.ts

Lines changed: 1 addition & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export async function nodeStored(ctx: EventHandlerContext) {
3636

3737
newNode.created = Number(nodeEvent.created)
3838
newNode.farmingPolicyId = nodeEvent.farmingPolicyId
39+
newNode.certification = NodeCertification.Diy
3940

4041
const newLocation = new Location()
4142
newLocation.id = ctx.event.id
@@ -45,45 +46,11 @@ export async function nodeStored(ctx: EventHandlerContext) {
4546

4647
newNode.location = newLocation
4748

48-
if (node.isV28) {
49-
const nodeAsV28 = node.asV28
50-
if (nodeAsV28.certificationType) {
51-
const certificationTypeAsString = nodeAsV28.certificationType.__kind.toString()
52-
let certType = NodeCertification.Diy
53-
switch (certificationTypeAsString) {
54-
case 'Diy':
55-
certType = NodeCertification.Diy
56-
break
57-
case 'Certified':
58-
certType = NodeCertification.Certified
59-
break
60-
}
61-
newNode.certification = certType
62-
} else {
63-
newNode.certification = NodeCertification.Diy
64-
}
65-
}
66-
6749
if (node.isV43) {
6850
const nodeAsV43 = node.asV43
6951
newNode.secure = nodeAsV43.secureBoot ? true : false
7052
newNode.virtualized = nodeAsV43.virtualized ? true : false
7153
newNode.serialNumber = nodeAsV43.serialNumber.toString()
72-
if (nodeAsV43.certificationType) {
73-
const certificationTypeAsString = nodeAsV43.certificationType.__kind.toString()
74-
let certType = NodeCertification.Diy
75-
switch (certificationTypeAsString) {
76-
case 'Diy':
77-
certType = NodeCertification.Diy
78-
break
79-
case 'Certified':
80-
certType = NodeCertification.Certified
81-
break
82-
}
83-
newNode.certification = certType
84-
} else {
85-
newNode.certification = NodeCertification.Diy
86-
}
8754
}
8855

8956
if (node.isV101 || node.isV63) {
@@ -99,21 +66,6 @@ export async function nodeStored(ctx: EventHandlerContext) {
9966
newNode.virtualized = nodeEvent.virtualized ? true : false
10067
newNode.serialNumber = nodeEvent.serialNumber.toString()
10168
newNode.connectionPrice = nodeEvent.connectionPrice
102-
if (nodeEvent.certification) {
103-
const certificationTypeAsString = nodeEvent.certification.__kind.toString()
104-
let certType = NodeCertification.Diy
105-
switch (certificationTypeAsString) {
106-
case 'Diy':
107-
certType = NodeCertification.Diy
108-
break
109-
case 'Certified':
110-
certType = NodeCertification.Certified
111-
break
112-
}
113-
newNode.certification = certType
114-
} else {
115-
newNode.certification = NodeCertification.Diy
116-
}
11769
}
11870

11971
await ctx.store.save<Node>(newNode)

src/processor.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ processor.addEventHandler('tfgridModule.FarmUpdated', ctx => farmUpdated(ctx));
4747
processor.addEventHandler('tfgridModule.FarmDeleted', ctx => farmDeleted(ctx));
4848
processor.addEventHandler('tfgridModule.FarmPayoutV2AddressRegistered', ctx => farmPayoutV2AddressRegistered(ctx));
4949
processor.addEventHandler('tfgridModule.FarmCertificationSet', ctx => farmCertificationSet(ctx));
50+
processor.addEventHandler('tfgridModule.FarmingPolicySet', ctx => farmCertificationSet(ctx));
5051

5152
processor.addEventHandler('tfgridModule.EntityStored', ctx => entityStored(ctx));
5253
processor.addEventHandler('tfgridModule.EntityUpdated', ctx => entityUpdated(ctx));

0 commit comments

Comments
 (0)