@@ -4,6 +4,7 @@ import { EventItem } from '@subsquid/substrate-processor/lib/interfaces/dataSele
44
55import { Ctx } from '../processor'
66import * as v63 from '../types/v63'
7+ import { validateString } from "./nodes"
78
89export class FarmWithIPs {
910 constructor ( farmID : number , ips : PublicIp [ ] ) {
@@ -41,7 +42,7 @@ export async function farmStored(
4142 newFarm . id = item . event . id
4243 newFarm . gridVersion = farmStoredEventParsed . version
4344 newFarm . farmID = farmStoredEventParsed . id
44- newFarm . name = farmStoredEventParsed . name . toString ( )
45+ newFarm . name = validateString ( ctx , farmStoredEventParsed . name . toString ( ) )
4546 newFarm . twinID = farmStoredEventParsed . twinId
4647 newFarm . pricingPolicyID = farmStoredEventParsed . pricingPolicyId
4748 newFarm . dedicatedFarm = false
@@ -56,15 +57,8 @@ export async function farmStored(
5657
5758 newIP . id = item . event . id
5859
59- if ( ip . ip . toString ( ) . indexOf ( '\x00' ) >= 0 ) {
60- return
61- }
62- newIP . ip = ip . ip . toString ( )
63-
64- if ( ip . gateway . toString ( ) . indexOf ( '\x00' ) >= 0 ) {
65- return
66- }
67- newIP . gateway = ip . gateway . toString ( )
60+ newIP . ip = validateString ( ctx , ip . ip . toString ( ) )
61+ newIP . gateway = validateString ( ctx , ip . gateway . toString ( ) )
6862
6963 newIP . contractId = ip . contractId
7064 newIP . farm = newFarm
@@ -114,7 +108,7 @@ export async function farmUpdated(
114108 if ( ! savedFarm ) return
115109
116110 savedFarm . gridVersion = farmUpdatedEventParsed . version
117- savedFarm . name = farmUpdatedEventParsed . name . toString ( )
111+ savedFarm . name = validateString ( ctx , farmUpdatedEventParsed . name . toString ( ) )
118112 savedFarm . twinID = farmUpdatedEventParsed . twinId
119113 savedFarm . pricingPolicyID = farmUpdatedEventParsed . pricingPolicyId
120114 savedFarm . certification = certification
@@ -128,14 +122,14 @@ export async function farmUpdated(
128122 const savedIP = await ctx . store . get ( PublicIp , { where : { ip : ip . ip . toString ( ) } , relations : { farm : true } } )
129123 // ip is already there in storage, don't save it again
130124 if ( savedIP ) {
131- savedIP . ip = ip . ip . toString ( )
132- savedIP . gateway = ip . gateway . toString ( )
125+ savedIP . ip = validateString ( ctx , ip . ip . toString ( ) ) // not effective, but for since we already check for \x00
126+ savedIP . gateway = validateString ( ctx , ip . gateway . toString ( ) )
133127 await ctx . store . save < PublicIp > ( savedIP )
134128 } else {
135129 const newIP = new PublicIp ( )
136130 newIP . id = item . event . id
137- newIP . ip = ip . ip . toString ( )
138- newIP . gateway = ip . gateway . toString ( )
131+ newIP . ip = validateString ( ctx , ip . ip . toString ( ) )
132+ newIP . gateway = validateString ( ctx , ip . gateway . toString ( ) )
139133 newIP . contractId = ip . contractId
140134 newIP . farm = savedFarm
141135
@@ -151,7 +145,7 @@ export async function farmUpdated(
151145
152146 const publicIPsOfFarm = await ctx . store . find < PublicIp > ( PublicIp , { where : { farm : { id : savedFarm . id } } , relations : { farm : true } } )
153147 publicIPsOfFarm . forEach ( async ip => {
154- if ( eventPublicIPs . filter ( eventIp => eventIp . ip . toString ( ) === ip . ip ) . length === 0 ) {
148+ if ( eventPublicIPs . filter ( eventIp => validateString ( ctx , eventIp . ip . toString ( ) ) === ip . ip ) . length === 0 ) {
155149 // IP got removed from farm
156150 await ctx . store . remove < PublicIp > ( ip )
157151 }
@@ -188,7 +182,7 @@ export async function farmPayoutV2AddressRegistered(
188182 if ( savedFarm ) {
189183 let address = ''
190184 if ( ! stellarAddress . includes ( 0 ) ) {
191- address = stellarAddress . toString ( )
185+ address = validateString ( ctx , stellarAddress . toString ( ) )
192186 }
193187
194188 savedFarm . stellarAddress = address
@@ -252,7 +246,7 @@ export async function farmCreateOrUpdateOrDelete(ctx: Ctx): Promise<[Farm[], Far
252246 newFarm . id = eventID
253247 newFarm . gridVersion = farmStoredEventParsed . version
254248 newFarm . farmID = farmStoredEventParsed . id
255- newFarm . name = farmStoredEventParsed . name . toString ( )
249+ newFarm . name = validateString ( ctx , farmStoredEventParsed . name . toString ( ) )
256250 newFarm . twinID = farmStoredEventParsed . twinId
257251 newFarm . pricingPolicyID = farmStoredEventParsed . pricingPolicyId
258252 newFarm . dedicatedFarm = false
@@ -267,15 +261,8 @@ export async function farmCreateOrUpdateOrDelete(ctx: Ctx): Promise<[Farm[], Far
267261
268262 newIP . id = eventID
269263
270- if ( ip . ip . toString ( ) . indexOf ( '\x00' ) >= 0 ) {
271- return
272- }
273- newIP . ip = ip . ip . toString ( )
274-
275- if ( ip . gateway . toString ( ) . indexOf ( '\x00' ) >= 0 ) {
276- return
277- }
278- newIP . gateway = ip . gateway . toString ( )
264+ newIP . ip = validateString ( ctx , ip . ip . toString ( ) )
265+ newIP . gateway = validateString ( ctx , ip . gateway . toString ( ) )
279266
280267 newIP . contractId = ip . contractId
281268 newIP . farm = newFarm
@@ -313,7 +300,7 @@ export async function farmCreateOrUpdateOrDelete(ctx: Ctx): Promise<[Farm[], Far
313300 if ( foundInNewListIndex != - 1 ) {
314301 const savedFarm : Farm = newFarms [ foundInNewListIndex ]
315302 savedFarm . gridVersion = farmUpdatedEventParsed . version
316- savedFarm . name = farmUpdatedEventParsed . name . toString ( )
303+ savedFarm . name = validateString ( ctx , farmUpdatedEventParsed . name . toString ( ) )
317304 savedFarm . twinID = farmUpdatedEventParsed . twinId
318305 savedFarm . pricingPolicyID = farmUpdatedEventParsed . pricingPolicyId
319306 // const pubIps = updatePublicIPs(ctx, farmUpdatedEventParsed.publicIps, eventID, savedFarm)
@@ -328,7 +315,7 @@ export async function farmCreateOrUpdateOrDelete(ctx: Ctx): Promise<[Farm[], Far
328315 if ( foundInUpdatedListIndex != - 1 ) {
329316 let savedFarm : Farm = updatedFarms [ foundInUpdatedListIndex ]
330317 savedFarm . gridVersion = farmUpdatedEventParsed . version
331- savedFarm . name = farmUpdatedEventParsed . name . toString ( )
318+ savedFarm . name = validateString ( ctx , farmUpdatedEventParsed . name . toString ( ) )
332319 savedFarm . twinID = farmUpdatedEventParsed . twinId
333320 savedFarm . pricingPolicyID = farmUpdatedEventParsed . pricingPolicyId
334321 updatedFarms [ foundInUpdatedListIndex ] = savedFarm
@@ -342,7 +329,7 @@ export async function farmCreateOrUpdateOrDelete(ctx: Ctx): Promise<[Farm[], Far
342329 if ( ! savedFarm ) continue
343330
344331 savedFarm . gridVersion = farmUpdatedEventParsed . version
345- savedFarm . name = farmUpdatedEventParsed . name . toString ( )
332+ savedFarm . name = validateString ( ctx , farmUpdatedEventParsed . name . toString ( ) )
346333 savedFarm . twinID = farmUpdatedEventParsed . twinId
347334 savedFarm . pricingPolicyID = farmUpdatedEventParsed . pricingPolicyId
348335
@@ -379,13 +366,13 @@ function getPublicIPs(ctx: Ctx, farm: Farm, savedFarmIps: FarmWithIPs[], newIps:
379366 // console.log(`found index: ${foundIdx}`)
380367 if ( foundIdx !== - 1 ) {
381368 toModify [ 0 ] . publicIPs [ foundIdx ] . contractId = ip . contractId
382- toModify [ 0 ] . publicIPs [ foundIdx ] . ip = ip . ip . toString ( )
383- toModify [ 0 ] . publicIPs [ foundIdx ] . gateway = ip . gateway . toString ( )
369+ toModify [ 0 ] . publicIPs [ foundIdx ] . ip = validateString ( ctx , ip . ip . toString ( ) )
370+ toModify [ 0 ] . publicIPs [ foundIdx ] . gateway = validateString ( ctx , ip . gateway . toString ( ) )
384371 } else {
385372 const newIP = new PublicIp ( )
386373 newIP . id = eventID
387374 newIP . ip = ip . ip . toString ( )
388- newIP . gateway = ip . gateway . toString ( )
375+ newIP . gateway = validateString ( ctx , ip . gateway . toString ( ) )
389376 newIP . contractId = ip . contractId
390377 newIP . farm = farm
391378 // ctx.log.info(`saving new ip: ${newIP.ip}`)
0 commit comments