@@ -54,102 +54,102 @@ var params = EIP712FuzzTestParams{
54
54
// variable input sizes, types, and fields. While it may be possible to translate a single input into
55
55
// a JSON object, it would require difficult parsing, and ultimately approximates our randomized unit
56
56
// tests as they are.
57
- func (suite * EIP712TestSuite ) TestRandomPayloadFlattening () {
57
+ func (s * EIP712TestSuite ) TestRandomPayloadFlattening () {
58
58
// Re-seed rand generator
59
59
rand .Seed (rand .Int64 ())
60
60
61
61
for i := 0 ; i < params .numTestObjects ; i ++ {
62
- suite .Run (fmt .Sprintf ("%v%d" , fuzzTestName , i ), func () {
63
- payload := suite .generateRandomPayload (i )
62
+ s .Run (fmt .Sprintf ("%v%d" , fuzzTestName , i ), func () {
63
+ payload := s .generateRandomPayload (i )
64
64
65
65
flattened , numMessages , err := eip712 .FlattenPayloadMessages (payload )
66
66
67
- suite .Require ().NoError (err )
68
- suite .Require ().Equal (numMessages , i )
67
+ s .Require ().NoError (err )
68
+ s .Require ().Equal (numMessages , i )
69
69
70
- suite .verifyPayloadAgainstFlattened (payload , flattened )
70
+ s .verifyPayloadAgainstFlattened (payload , flattened )
71
71
})
72
72
}
73
73
}
74
74
75
75
// generateRandomPayload creates a random payload of the desired format, with random sub-objects.
76
- func (suite * EIP712TestSuite ) generateRandomPayload (numMessages int ) gjson.Result {
77
- payload := suite .createRandomJSONObject ().Raw
76
+ func (s * EIP712TestSuite ) generateRandomPayload (numMessages int ) gjson.Result {
77
+ payload := s .createRandomJSONObject ().Raw
78
78
msgs := make ([]gjson.Result , numMessages )
79
79
80
80
for i := 0 ; i < numMessages ; i ++ {
81
- msgs [i ] = suite .createRandomJSONObject ()
81
+ msgs [i ] = s .createRandomJSONObject ()
82
82
}
83
83
84
84
payload , err := sjson .Set (payload , msgsFieldName , msgs )
85
- suite .Require ().NoError (err )
85
+ s .Require ().NoError (err )
86
86
87
87
return gjson .Parse (payload )
88
88
}
89
89
90
90
// createRandomJSONObject creates a JSON object with random fields.
91
- func (suite * EIP712TestSuite ) createRandomJSONObject () gjson.Result {
91
+ func (s * EIP712TestSuite ) createRandomJSONObject () gjson.Result {
92
92
var err error
93
93
payloadRaw := ""
94
94
95
- numFields := suite .createRandomIntInRange (0 , params .maxNumFieldsPerObject )
95
+ numFields := s .createRandomIntInRange (0 , params .maxNumFieldsPerObject )
96
96
for i := 0 ; i < numFields ; i ++ {
97
- key := suite .createRandomString ()
97
+ key := s .createRandomString ()
98
98
99
- randField := suite .createRandomJSONField (i , 0 )
99
+ randField := s .createRandomJSONField (i , 0 )
100
100
payloadRaw , err = sjson .Set (payloadRaw , key , randField )
101
- suite .Require ().NoError (err )
101
+ s .Require ().NoError (err )
102
102
}
103
103
104
104
return gjson .Parse (payloadRaw )
105
105
}
106
106
107
107
// createRandomJSONField creates a random field with a random JSON type, with the possibility of
108
108
// nested fields up to depth objects.
109
- func (suite * EIP712TestSuite ) createRandomJSONField (t int , depth int ) interface {} {
109
+ func (s * EIP712TestSuite ) createRandomJSONField (t int , depth int ) interface {} {
110
110
switch t % numJSONTypes {
111
111
case jsonBoolType :
112
- return suite .createRandomBoolean ()
112
+ return s .createRandomBoolean ()
113
113
case jsonStringType :
114
- return suite .createRandomString ()
114
+ return s .createRandomString ()
115
115
case jsonFloatType :
116
- return suite .createRandomFloat ()
116
+ return s .createRandomFloat ()
117
117
case jsonArrayType :
118
- return suite .createRandomJSONNestedArray (depth )
118
+ return s .createRandomJSONNestedArray (depth )
119
119
case jsonObjectType :
120
- return suite .createRandomJSONNestedObject (depth )
120
+ return s .createRandomJSONNestedObject (depth )
121
121
default :
122
122
return nil
123
123
}
124
124
}
125
125
126
126
// createRandomJSONNestedArray creates an array of random nested JSON fields.
127
- func (suite * EIP712TestSuite ) createRandomJSONNestedArray (depth int ) []interface {} {
127
+ func (s * EIP712TestSuite ) createRandomJSONNestedArray (depth int ) []interface {} {
128
128
arr := make ([]interface {}, rand .Intn (params .maxArrayLength ))
129
129
for i := range arr {
130
- arr [i ] = suite .createRandomJSONNestedField (depth )
130
+ arr [i ] = s .createRandomJSONNestedField (depth )
131
131
}
132
132
133
133
return arr
134
134
}
135
135
136
136
// createRandomJSONNestedObject creates a key-value set of objects with random nested JSON fields.
137
- func (suite * EIP712TestSuite ) createRandomJSONNestedObject (depth int ) interface {} {
137
+ func (s * EIP712TestSuite ) createRandomJSONNestedObject (depth int ) interface {} {
138
138
numFields := rand .Intn (params .maxNumFieldsPerObject )
139
139
obj := make (map [string ]interface {})
140
140
141
141
for i := 0 ; i < numFields ; i ++ {
142
- subField := suite .createRandomJSONNestedField (depth )
142
+ subField := s .createRandomJSONNestedField (depth )
143
143
144
- obj [suite .createRandomString ()] = subField
144
+ obj [s .createRandomString ()] = subField
145
145
}
146
146
147
147
return obj
148
148
}
149
149
150
150
// createRandomJSONNestedField serves as a helper for createRandomJSONField and returns a random
151
151
// subfield to populate an array or object type.
152
- func (suite * EIP712TestSuite ) createRandomJSONNestedField (depth int ) interface {} {
152
+ func (s * EIP712TestSuite ) createRandomJSONNestedField (depth int ) interface {} {
153
153
var newFieldType int
154
154
155
155
if depth == params .maxObjectDepth {
@@ -158,23 +158,23 @@ func (suite *EIP712TestSuite) createRandomJSONNestedField(depth int) interface{}
158
158
newFieldType = rand .Intn (numJSONTypes )
159
159
}
160
160
161
- return suite .createRandomJSONField (newFieldType , depth + 1 )
161
+ return s .createRandomJSONField (newFieldType , depth + 1 )
162
162
}
163
163
164
- func (suite * EIP712TestSuite ) createRandomBoolean () bool {
164
+ func (s * EIP712TestSuite ) createRandomBoolean () bool {
165
165
return rand .Intn (2 ) == 0
166
166
}
167
167
168
- func (suite * EIP712TestSuite ) createRandomFloat () float64 {
168
+ func (s * EIP712TestSuite ) createRandomFloat () float64 {
169
169
return (rand .Float64 () - 0.5 ) * params .randomFloatRange
170
170
}
171
171
172
- func (suite * EIP712TestSuite ) createRandomString () string {
173
- bzLen := suite .createRandomIntInRange (params .minStringLength , params .maxStringLength )
172
+ func (s * EIP712TestSuite ) createRandomString () string {
173
+ bzLen := s .createRandomIntInRange (params .minStringLength , params .maxStringLength )
174
174
bz := make ([]byte , bzLen )
175
175
176
176
for i := 0 ; i < bzLen ; i ++ {
177
- bz [i ] = byte (suite .createRandomIntInRange (asciiRangeStart , asciiRangeEnd ))
177
+ bz [i ] = byte (s .createRandomIntInRange (asciiRangeStart , asciiRangeEnd ))
178
178
}
179
179
180
180
str := string (bz )
@@ -189,6 +189,6 @@ func (suite *EIP712TestSuite) createRandomString() string {
189
189
}
190
190
191
191
// createRandomIntInRange provides a random integer between [min, max)
192
- func (suite * EIP712TestSuite ) createRandomIntInRange (min int , max int ) int {
192
+ func (s * EIP712TestSuite ) createRandomIntInRange (min int , max int ) int {
193
193
return rand .Intn (max - min ) + min
194
194
}
0 commit comments