@@ -57,6 +57,26 @@ export interface ActionInput {
5757 isLegacy : boolean
5858}
5959
60+ const ZERO_POI = '0x0000000000000000000000000000000000000000000000000000000000000000'
61+
62+ // Validates POI-related fields for non-legacy actions.
63+ // When POI is zero, publicPOI and poiBlockNumber are optional.
64+ // When POI is non-zero, all three fields are required.
65+ /* eslint-disable @typescript-eslint/no-explicit-any */
66+ const hasValidPOIParams = ( variableToCheck : any ) : boolean => {
67+ if ( variableToCheck . isLegacy || variableToCheck . poi === undefined ) {
68+ return true
69+ }
70+ if ( variableToCheck . poi === ZERO_POI ) {
71+ return 'poi' in variableToCheck
72+ }
73+ return (
74+ 'poi' in variableToCheck &&
75+ 'publicPOI' in variableToCheck &&
76+ 'poiBlockNumber' in variableToCheck
77+ )
78+ }
79+
6080export const isValidActionInput = (
6181 /* eslint-disable @typescript-eslint/no-explicit-any */
6282 variableToCheck : any ,
@@ -71,29 +91,16 @@ export const isValidActionInput = (
7191 break
7292 case ActionType . UNALLOCATE :
7393 hasActionParams =
74- 'deploymentID' in variableToCheck && 'allocationID' in variableToCheck
75-
76- if ( ! variableToCheck . isLegacy && variableToCheck . poi !== undefined ) {
77- hasActionParams =
78- hasActionParams &&
79- 'poi' in variableToCheck &&
80- 'publicPOI' in variableToCheck &&
81- 'poiBlockNumber' in variableToCheck
82- }
94+ 'deploymentID' in variableToCheck &&
95+ 'allocationID' in variableToCheck &&
96+ hasValidPOIParams ( variableToCheck )
8397 break
8498 case ActionType . REALLOCATE :
8599 hasActionParams =
86100 'deploymentID' in variableToCheck &&
87101 'allocationID' in variableToCheck &&
88- 'amount' in variableToCheck
89-
90- if ( ! variableToCheck . isLegacy && variableToCheck . poi !== undefined ) {
91- hasActionParams =
92- hasActionParams &&
93- 'poi' in variableToCheck &&
94- 'publicPOI' in variableToCheck &&
95- 'poiBlockNumber' in variableToCheck
96- }
102+ 'amount' in variableToCheck &&
103+ hasValidPOIParams ( variableToCheck )
97104 break
98105 case ActionType . RESIZE :
99106 hasActionParams =
@@ -103,15 +110,9 @@ export const isValidActionInput = (
103110 break
104111 case ActionType . PRESENT_POI :
105112 hasActionParams =
106- 'deploymentID' in variableToCheck && 'allocationID' in variableToCheck
107-
108- if ( ! variableToCheck . isLegacy && variableToCheck . poi !== undefined ) {
109- hasActionParams =
110- hasActionParams &&
111- 'poi' in variableToCheck &&
112- 'publicPOI' in variableToCheck &&
113- 'poiBlockNumber' in variableToCheck
114- }
113+ 'deploymentID' in variableToCheck &&
114+ 'allocationID' in variableToCheck &&
115+ hasValidPOIParams ( variableToCheck )
115116 break
116117 }
117118 return (
0 commit comments